Как бороться с ирландцами (например, О'Брайен, О'Коннор) после mysql_real_escape_string ()? - PullRequest
1 голос
/ 13 июля 2011

У меня есть форма, которая принимает чье-то имя.Это основное регулярное выражение, которое принимает только буквы и апострофы.Поэтому, когда я выполняю mysql_real_escape_string () в строке Conan O'Brien, Conan O \ 'Brien сохраняется.

Когда я хочу отправить автоматическое электронное письмо, оно будет адресовано Conan O \' Brienв теле вместо Конана О'Брайена.

Как лучше всего делать с этим особым случаем?

Я думал, что смогу удалить \ после выполнения mysql_real_escape_string () и довставка человека в базу данных.Или я мог бы также оставить обратную косую черту в базе данных, но удалять ее при каждой отправке электронного письма.

Ответы [ 2 ]

4 голосов
/ 13 июля 2011

Я бы использовал stripslashes () , когда вы хотите отобразить его.Вы можете удалить косую черту сразу после извлечения пользовательского объекта, но имейте в виду, что если вы выводите имя в javascript или HTML, вам может понадобиться снова его экранировать, поскольку это может привести к несбалансированным кавычкам.

2 голосов
/ 13 июля 2011

Лучшим решением было бы работать с подготовленными операторами, потому что тогда не нужно экранировать значения полей.Позже вы htmlentiticize тело письма, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...