При копировании и вставке текста с апострофом он не проходит через mysql_real_escape_string()

Я добавил mysql_real_escape_string() с запросом на ввод текста. Когда пользователь пишет текст с символами, он проходит через mysql_real_escape_string() и работает нормально, но когда пользователь вставляет текст, скопированный с других веб-сайтов, он не проходит через mysql_real_escape_string(). Текст после апострофа обрезан.

Как я могу это исправить?

Я считаю, что когда пользователь вставляет текст в поле ввода, он не в кодировке UTF-8. Есть ли способ обработать его без ошибок в ядре PHP? Также, пожалуйста, сообщите мне, есть ли у вас решения в Pear DB.


person Hemant    schedule 04.03.2014    source источник
comment
Текст обрывается или есть ошибки? Если есть ошибки, то какие?   -  person Quentin    schedule 04.03.2014
comment
Вы действительно должны показать больше кода. mysql_real_escape_string должен обрабатывать любое необходимое экранирование.   -  person Quentin    schedule 04.03.2014
comment
Вы используете устаревший API базы данных и должны использовать современная замена.   -  person Quentin    schedule 04.03.2014


Ответы (1)


Я предполагаю, что пользователи также могут вставлять закодированный текст URL, поэтому используйте функцию urldecode в PHP. Это может быть одним из возможных случаев. Другой, как вы сказали, UTF-8, в этом случае используйте MySQL ПРЕОБРАЗОВАТЬ. Надеюсь, это поможет. Если возможно, предоставьте более подробную информацию, например, для каких текстов у вас возникает эта проблема.

person Varun Kakumani    schedule 04.03.2014