- Автор темы
- #1
Вопрос относительно ДЛЕ, его классов (парсер)
При отправке формы в поле "название" можно указывать кавычки. Нужно сначала очистить параметр $_POST['name'], затем провести пару мероприятий по проверке, а потом, если ошибка, то вывести в снова форме это название. Если все ок, то сохранить в БД.
Дошел до использования в названии кавычек... оказалось, что кавычки экранирует при выводе формы, причем сразу три слеша.
В общем, запарился с этими кавычками...
Было:
Я решил сделать так (заменить все кавычки на ёлочки, а затем делать все задуманное
А когда все проверилось, все хорошо, и пришло время делать вставку в БД, то я делаю экранирование:
Но опять же, если ввести название в двух кавычках, то проблема остается... при выводе формы в поле выводит так:
И теперь вопрос:
насколько я правильно все это дело сделал?
может есть решение правильнее для безопасности?
При отправке формы в поле "название" можно указывать кавычки. Нужно сначала очистить параметр $_POST['name'], затем провести пару мероприятий по проверке, а потом, если ошибка, то вывести в снова форме это название. Если все ок, то сохранить в БД.
Дошел до использования в названии кавычек... оказалось, что кавычки экранирует при выводе формы, причем сразу три слеша.
В общем, запарился с этими кавычками...
Было:
PHP:
$_name = $db->safesql( $parse->process( trim( strip_tags ($_POST['name']) ) ) );
PHP:
$name = $_POST['name'];
$name = preg_replace('/\"([^\"]+)\"/', '«$1»', $name);
$_name = $parse->process( trim( strip_tags ($name) ) ) ;
PHP:
$_name = $db->safesql( $_name );
Т.е. двойные кавычки в html выводиться неправильно, все срезает.Новый бренд \
И теперь вопрос:
насколько я правильно все это дело сделал?
может есть решение правильнее для безопасности?