61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
1 | |
решение конфликта кавычек29.05.2010, 15:15. Показов 4308. Ответов 8
Метки нет (Все метки)
Писал сайт на заказ и столкнулся с такой проблемой. Идет форма окна пользователя, где он вводит текст и жмет отправить.
$_POST['test'] // Например здесь наш текст, его мы например запишем в базу. Проблема такая, когда пользователь использует одинарную кавычку вместо апострофа, скрипт почему то обрывает текст после этой кавычки и записывает. Или при выводе если текст содержит одинарную кавычку, то текст обрывается. Это происходит из-за того, что переменные скрипте могут быть заключены так же в одинарные кавычки и конфликтуют с текстом. Подскажите как решить проблему кавычек в тексте ...
0
|
29.05.2010, 15:15 | |
Ответы с готовыми решениями:
8
Решение конфликта вставки через замену Решение конфликта между двумя библиотеками Решение для кавычек в echo 3 Конфликта |
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
29.05.2010, 21:37 [ТС] | 3 |
ну как бы кода нет это такой масштабный вопрос о проблеме. Вот смотрите у нас есть форма ввода текста. Пользователь вводит текст. текст попадет в переменную $_POST['test']
Эта переменная проходит всякие фильтры, типа проверки на кол-во символом и др. и записывается в базу. Если пользователь вводит в форме текст с ' (одинарной кавычкой), то в базу летит весь текст но обрывается на кавычке... Или например в базе текст с одинарными кавычками и 2... Мы его выводим в printf('%s',$myrow['test']) а он режется из-за конфликта кавычек, как это избежать? Экранирование помогает, но простой пользователь вводя текст в форму врядли будет экранировать кавычки )))
0
|
Почетный модератор
11529 / 4324 / 448
Регистрация: 12.06.2008
Сообщений: 12,425
|
||||||
29.05.2010, 22:34 | 4 | |||||
Когда получаешь данные через $_POST, то обязательно нужно делать addslashes (если выключен magic_quotes_gpc ), что бы экранировать спецсимволы (в том числе и кавычки). Например, текст aaa'bbb\ccc превратится в aaa\'bbb\\ccc
2
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
30.05.2010, 01:37 [ТС] | 5 |
тоесть как я понял суть в этой строке $test = addslashes($test); ? это как бы авто экранирование?
0
|
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
|
|
30.05.2010, 06:53 | 6 |
И еще раз SQL Инъекции.
1
|
ukroficer
|
|
30.05.2010, 18:16 | 7 |
Было такоя же проблема как решение юзать utf-8
|
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
|
|
31.05.2010, 18:20 | 9 |
Разработчики PHP настоятельно советуют перед внесением в БД данных, полученных от пользователя, пропускать их через функцию mysql_real_escape_string()
0
|
31.05.2010, 18:20 | |
31.05.2010, 18:20 | |
Помогаю со студенческими работами здесь
9
Избежать IP конфликта Эффективное разрешение конфликта Как избежать конфликта IP адресов Как избежать конфликта с брандмауэром? Избежать конфликта потоков, обращающихся к консоли Новый виток конфликта Oracle и Itanium Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |