У меня есть поле формы, которое содержит смесь HTML и текста. Я хочу, чтобы пользователи могли использовать базовый HTML и знаки препинания.
В настоящее время я использую mysql_real_escape_string и preg_replace для очистки данных и их вставки в базу данных. Насколько я понимаю, preg_replace - лучший способ удалить любые символы, которые не входят в белый список разрешенных символов, и что mysql_real_escape_string защищает от внедрения SQL.
//How I collect and sanitise the data...
$var=mysql_real_escape_string(
preg_replace("/[^A-Za-z0-9-?!$#@()\"'.:;\\@,_ =\/<> ]/",'',$_POST['var'])
);
Тем не менее, он продолжает работать, когда используется хэш-символ.
Мои вопросы:
1) Есть ли более эффективный способ сделать это?
2) Если это лучший способ, что я делаю не так?
Символы, которые мне нужно разрешить: все буквенно-цифровые символы и:
? ! @ # $% & () -. ,:; '"<> / + =
Спасибо!