передача кавычек в XmlHttpRequest
Через XmlHttpRequest передается GET'ом следующая строка:
var params="operation=insert&id_quest="+ <?php echo $get_id; ?> +"&question_text="+encodeURIComponent(question_text); где параметр question_text - это текст (литиница+кирилица), который может содержать кавычки. на сервере есть простейшая защита от инъекций: if(isset($_GET["operation"]) && $_GET["operation"]=="insert" && isset($_GET["id_quest"]) && isset($_GET["question_text"])){ if (iconv("UTF-8","windows-1251",$_GET["question_text"])) $text=iconv("UTF-8","windows-1251",$_GET["question_text"]); $text=checkvar($text); . . . } Тест функции checkvar: function checkvar($var){ $var=addslashes($var); $var=htmlspecialchars($var); return $var; } Так вот, при передаче текста, содержащего двойные кавычки, строка сохраняется в базе со слешами. Если передавать одинарные кавычки, то тест вообще обрезается до первой кавычки. Собственно, вопрос в том как передавать произвольный текст, что бы еще и защитится от инъекций. Поделитесь опытом с новичком, пожалуйста. |
передавайте кавычки через \" - тогда будут передаваться.
|
Да хоть даже в Base64 кодировать, а потом перед проверкой декодировать.
|
не мудрите, есть спец. функция mysql_real_escape_string($string) - используйте ее непосредственно в запросе...
|
Время: 17:30. |
Время: 17:30.
© OSzone.net 2001-