Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
1

решение конфликта кавычек

29.05.2010, 15:15. Показов 4308. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Писал сайт на заказ и столкнулся с такой проблемой. Идет форма окна пользователя, где он вводит текст и жмет отправить.

$_POST['test'] // Например здесь наш текст, его мы например запишем в базу.


Проблема такая, когда пользователь использует одинарную кавычку вместо апострофа, скрипт почему то обрывает текст после этой кавычки и записывает. Или при выводе если текст содержит одинарную кавычку, то текст обрывается. Это происходит из-за того, что переменные скрипте могут быть заключены так же в одинарные кавычки и конфликтуют с текстом. Подскажите как решить проблему кавычек в тексте ...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2010, 15:15
Ответы с готовыми решениями:

Решение конфликта вставки через замену
Привет! Имею в БД уникальный индекс по двум полям. Существует ли в MySQL команда, которая...

Решение конфликта между двумя библиотеками
Как решить конфликт между библиотекой mscorlib.dll из .NET и библиотекой mscorlib.dll из...

Решение для кавычек в echo
Ребята! Не в курсе, кто знает, у кого есть более красивые способы, но, после того, как я ,...

3 Конфликта
1: CreateThread(0,0,ClientSession,ClientSocket,0,&thID); DWORD WINAPI ClientSession(LPVOID...

8
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.05.2010, 17:30 2
Че-то я не понял ничего.
PHP
1
2
$foo = 'сколько"угодно\'любых"кавычек';
$bar = "123 $foo 456";
Покажите код.
1
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
PHP
1
2
3
4
5
6
7
8
9
if (isset($_POST['test']))
  $test = $_POST['test'];
else
  $test = '';
if (!get_magic_quotes_gpc()) // если magic_quotes_gpc выключен,
  $test = addslashes($test);  // тогда экранируем спецсимволы сами
$s = "SELECT * FROM tab1 WHERE label='$test'"; // теперь эту переменную можно без опаски вставлять в запрос
$res = mysql_query($s,$db);
....
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
Почетный модератор
11529 / 4324 / 448
Регистрация: 12.06.2008
Сообщений: 12,425
30.05.2010, 18:40 8
ukroficer, utf-8 тут не поможет. Кавычки одинаково записываться и в cp1251 и в utf-8
1
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2010, 18:20
Помогаю со студенческими работами здесь

Избежать IP конфликта
Есть одна большая сеть. Надо добавить оборудование которое имеет идентичные IP адреса . Что мне...

Эффективное разрешение конфликта
Конфликт - это нормально. (Эффективное разрешение конфликта) психология конфликтов. Можно ли...

Как избежать конфликта IP адресов
Добрый день. Имеется большая ЛВС. IP в этой сети статические. Такой вот вопрос, уж не знаю...

Как избежать конфликта с брандмауэром?
Доброе время суток. Я создал программу, закачивающую файл на сервер, по протоколу FTP. Однако,...

Избежать конфликта потоков, обращающихся к консоли
Привет всем. Пишу приложения, которое будет использовать много потоков, каждый из них будет...

Новый виток конфликта Oracle и Itanium
Колебался между разделами "Обо всем" (все-таки потрындеть же хочется) и новостями, если ошибся,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru