на моем веб-сайте есть раздел комментариев. Я хочу отфильтровать и проверить ввод, прежде чем сохранить его в моей базе данных. Если на входе есть недопустимые символы, пользователь получает уведомление о том, что его данные недействительны.
Мой вопрос, какие символы не разрешены? например, я хочу избежать инъекций sql
Теги не допускаются. Как это проверить?
Если вы используете Zend_Db и параметризованные запросы (например: $adapter->insert($tableName, array('param' => 'value'))
), тогда он автоматически удалит все для вас.
Если же вы хотите дополнительно проверить вводимые пользователем данные, взгляните на Zend_Validate
и Zend_Filter
Кроме того, если под "тегами" вы подразумеваете HTML-теги, я бы не стал этого делать. что-нибудь для тех, что на входе, но убедитесь, что вы правильно экранируете/удаляете их на выходе (посмотрите на htmlspecialchars()
)
Если вы хотите отобразить сообщение об ошибке, если ввод содержит теги HTML, и предполагая, что $comment
является телом комментария, вы можете попробовать:
if(strip_tags($comment) !== $comment) {
// It seems it contained some html tags
}