#php #mysql
#php #mysql
Вопрос:
Я экранирую входные данные в свою базу данных с:
mysql_real_escape_string()
Если я введу:
"Let's see"
когда я выбираю из базы данных, я получаю:
"let's see"
Как мне предотвратить это? Сначала я пишу в форме, затем отправляю ее через AJAX в файл .php, а затем экранирую ее с помощью mysql_real_escape_string()
и ничего больше.
Комментарии:
1. Пожалуйста, опубликуйте код, который вы используете для вставки данных в базу данных.
2. Возможно, включены магические кавычки.
Ответ №1:
Звучит так, как будто у вас включены волшебные кавычки, что является фантастическим способом испортить данные вашего пользователя до необратимого уровня. Ужасная ошибка, введенная еще в ужасные старые времена PHP, когда они думали, что регистрировать глобальные файлы было хорошей идеей.
Вместо этого используйте подготовленные инструкции. Это не приведет к искажению ваших данных и не позволит злоумышленникам исказить вашу базу данных.
Ответ №2:
Я не могу сказать вам, почему это не исправляется, однако, когда вы выбираете что-то из своей базы данных, вы можете использовать stripslashes()
, чтобы вернуть это в нормальное состояние, например
$str = "Let's see";
stripslashes($str);
echo $str;
Выводил бы:
Давайте посмотрим