Мне нужно избегать ввода данных в форму. Я использовал mysql_real_escape_string, чтобы избежать значения, но он добавляет много слэшей со значением внутри базы данных, причина в том, что у меня есть апостроф в моем вводе, скажем, exp.
Теперь, чтобы избавиться от косой черты, я использую stripslashes после mysql_real_escape_string, а затем данные успешно попадают в базу данных и не видят никакого апострофа со значением в базе данных.
$name = mysql_real_escape_string(trim($_POST['userame'])); $name = stripslashes(stripslashes($userame));
// тогда данные успешно отправляются в db без апострофа
Я просто хотел подтвердить, это правильный способ избежать входного значения? благодаря
Даян
mysql_real_escape_string(stripslashes($_POST['username']));
Нет, это не так. Проверьте свой php.ini для параметра magic_quotes_gpc
. Если вы не можете отключить его, используйте stripslashes ПЕРЕД использованием mysql_real_escape_string
. Ссылка имеет способ $_COOKIE
ее глобально от $_POST
, $_GET
и $_COOKIE
. Или даже лучше, используйте подготовленные заявления с PDO
Если у вас включен magic_quotes_gpc, вы должны использовать функцию stripslashes () перед побегом – иначе вы выйдете дважды, при этом загрузите косые черты.
http://se.php.net/manual/en/function.mysql-real-escape-string.php