powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как убрать \
25 сообщений из 30, страница 1 из 2
(PHP) Как убрать \
    #33102536
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует textarea с комментарием($comment). Значение передаётся естесно в мускулевскую базу, потом выводится обратно в textarea для просмотра/изменения. При использовании символов (') , (") , ( перевод_строки ) добавляются слэши (\). Причём при каждом следующем сохранении они множатся! То есть сначала имеем
' потом \' потом \\' потом \\\\' и так далее до тех пор, пока окно с этим полем вообще не открывается абсолютно путым, без единого элемента!

Пробовал и htmlspecialchars и даже вот такое:
Код: plaintext
str_replace(chr( 92 ), 'a', ($comment))
Всё без толку

Достало уже это экранирование! Весь обплевался...

Somebody HELP!!!!
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102541
VERS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stripslahes($text);

-------------------------------
www.free-lancer.ru
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102542
VERS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VERSstripslahes($text);

-------------------------------
www.free-lancer.ru

Sorry, :)

Код: plaintext
stripslashes ($comment)
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102558
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\"Кавычки \". Cоставление запросов mysql, слеши, экранирование кавычек.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102562
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
маджик_квотесы включены
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102608
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, ребят, спасибо большое :) Всюду убрал кроме как с ('). Наверное придётся сказать людям, чтобы не ставили одинарную кавычку...

Кстати, возможно проблемы ещё из-за того, что в этом окне активно используется JavaScript.

Например вот так:
Код: plaintext
1.
2.
3.
4.
5.
<script language="JavaScript">
...
retParams[ 13 ] = '<?php echo htmlspecialchars( str_replace( "\r\n", '\n', $comment ) ); ?>';
...
</script>

А помеял, собственно тута:
Код: plaintext
1.
2.
3.
<textarea...>
<?php echo stripslashes(htmlspecialchars( str_replace( '\n', "\n", $comment ) )); ?>
</textarea>

Понимаете ли, код исходно не мой, а разбираться и отвечать за него поручено мне, вот и гадаем...
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102615
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
FrankieНаверное придётся сказать людям, чтобы не ставили одинарную кавычку...Наверно надо просто внимательно прочесть ссылку, которую вам дали, ещё раз.Кстати, возможно проблемы ещё из-за того, что в этом окне активно используется JavaScript.По барабану, чего там у вас на клиенте активно используется.Понимаете ли, код исходно не мой, а разбираться и отвечать за него поручено мне, вот и гадаем...Поручено - разбирайся. И приводи в порядок. Иначе так и будешь на всякую фигню напарываться время от времени - в итоге получишь код со вползающими особенностями.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102617
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы так ничего и не поняли или не прочли, предложенную мной линку.
Не надо никого ничего просить. Есть кавычка и нужно ее корректно добавлять в базу и все равно, какой обработчик стоит на стороне клиента.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102707
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* FrankieНаверное придётся сказать людям, чтобы не ставили одинарную кавычку...Наверно надо просто внимательно прочесть ссылку, которую вам дали, ещё раз.
Статья слишком общая, хотя и хорошая, в целом. Понимаете, я не хочу лезть в не то что в php.ini но и использовать всякие set_magic_quotes... Если что-то таким образом испортится, будет просто зря потрачено время. И ещё: у меня стоит register_globals = on , и я несколько удивился, что это неправильно, хотя и предполагал, что так оно может быть...

* FrankieКстати, возможно проблемы ещё из-за того, что в этом окне активно используется JavaScript.По барабану, чего там у вас на клиенте активно используется.
Как бы не так! Это же веб - конгломерат технологий! Глюк со слэшами появился после того, как система (частью которой и является под-окно с проблемным полем) была переведена в режим модального окна.

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

А что такое "вползающие особенности", не расскажешь?
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102723
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cВы так ничего и не поняли или не прочли, предложенную мной линку.
Прочёл. Внимательно. А понял насколько мозгов хватило, уж извините.

4m@t!c
Не надо никого ничего просить. Есть кавычка и нужно ее корректно добавлять в базу...
Тут рискну не согласиться: одинарная кавычка используется "простыми юзерами" крайне редко хотя бы потому, что находится в английской раскладке. Опасность может возникнуть только из-за Ctrl+C/Ctrl+V.

4m@t!c и все равно, какой обработчик стоит на стороне клиента.
Какой обработчик? Какой клиент? Это же веб-приложение!! Клиентом по сути является браузер! Если б была нормальная клиент-серверная система, с нормальной СУБД, с настоящим смарт-клиентом, подобных бредовейших проблем вообще бы не возникало. Такую систему мы конечно разрабатываем, но паралелльно приходится поддерживать и существующую...
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102750
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Frankie 4m@t!c и все равно, какой обработчик стоит на стороне клиента.
Какой обработчик? Какой клиент? Это же веб-приложение!! Клиентом по сути является браузер! Если б была нормальная клиент-серверная система, с нормальной СУБД, с настоящим смарт-клиентом, подобных бредовейших проблем вообще бы не возникало.Да, браузер - это клиент. Но слэши добавляются серверным PHP, а не клиентом или СУБД.
Всё, что вам надо, это:
1. Избавляться от слэшей в данных от клиента, если включено magic_quotes_gpc
2. Добавлять экранирование при выполнении запросов к БД.
И всё, никакого шаманства. Всё это и написано по ссылке.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33102939
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылку действительно почитай. Я сам пару месяцев назад с этим столкнулся.
Надо-то будет одну функцию в итоге добавить.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103182
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в php.ini
magic_quotes_gpc = Off (точно не помню параметр)
и при добавлении в БД
addslashes ($data)
при извлечении
stripslashes ($data)
---------
С уважением!
wolk.nutep.com
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103339
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
addslashes - это атавизм.
Данные, приходящие от клиента могут быть любые, а прийдут они через интерфейс броузера или "смарт-клиента" - абсолютно фиолетово. Если бы внимательно прочли статью, то поняли, что лезть php.ini совершенно необязательно. Достаточно проверять данную настройку и взависимости от этого экранировать или не экранировать данные.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103371
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
wolkпри извлечении
stripslashes ($data)Бред. Происходит от непонимания вопроса и чтения книжек под авторством ламерши Лауры Томсон.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103381
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
4m@t!cДостаточно проверять данную настройку и взависимости от этого экранировать или не экранировать данные.Это всё же сложнее (надо быть более внимательным), чем предложенный мной вариант (т.е. в начале скрипта удалять лишние слэши по необходимости, а при запросах их добавлять), в этом случае нет необходимости помнить, что за данные у вас в переменных - они всегда соответствуют тому, что ввёл пользователь, или тому, что вы сами задали, т.е. переменные всегда являются данными, а не их отображением.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103410
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[SRC *]переменные всегда являются данными, а не их отображением.[/src]Да, так правильней будет.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103486
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
* wolkпри извлечении
stripslashes ($data)Бред. Происходит от непонимания вопроса и чтения книжек под авторством ламерши Лауры Томсон.

Обоснуй
ЗЫ ху из лаура??
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103499
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
wolkОбоснуйЧеловек разумный не лезет на форум с требованиями что-то обосновать до прочтения мануала. Где чёрным по белому написано, почему этого делать не надо и почему это лишено смысла. Даже если слова мануала до человека не дойдут - он всегда может убедиться в своей правоте или неправоте при помощи личного опыта, коий поставить проблем не составляет.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33103502
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
В вышеозвученном http://www.phpfaq.ru/slashes#mysql] FAQ об этом так же написано.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33107759
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
* wolkпри извлечении
stripslashes ($data)Бред. Происходит от непонимания вопроса и чтения книжек под авторством ламерши Лауры Томсон.

бред происходит от непонимания того, что одна и та же проблема решается разними способами и как ее решать это личное имхо.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33107789
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
wolkбред происходит от непонимания того, что одна и та же проблема решается разними способами и как ее решать это личное имхо.Это ж надо быть таким УПЁРТЫМ ЛЕНТЯЕМ. Уже давно можно было прочесть мануал и понять, что http://se.php.net/addslashesФункция addslashes() часто применяется при записи в базу данных. Предположим, если нужно внести в базу данных имя O'reilly, то символ ' должен быть экранирован. В большинстве баз данных для этого используется \, строка будет выглядеть как O\'reilly. Заметьте, что сам символ \ в базу данных записан не будет .
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33107828
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я это прекрасно все прочитал.
>всегда может убедиться в своей правоте или неправоте при помощи личного опыта, коий поставить проблем не составляет

вырезка из БД:
mysql>GRANT select ON `mail`.* TO \'postfix\'@\'127.0.0.1\' IDENTIFIED BY \'postfix\'; mysql>use mail; mysql>create table alias (address varchar(128) not null default \'\', \\ goto varchar(128) not null default \'\', primary key (address)); mysql>create table transport (domain varchar(128) not null default \'\', \\ transport varchar(128) not null default \'\', primary key (domain)); mysql>create table users (email varchar(128) not null default \'\', \\ passwd varchar(128) not null default \'\', uid int(11) unsigned not null default \'1000\', \\ gid int(11) unsigned not null default \'12\', \\ maildir varchar(255) not null default \'/var/spool/mail/\', \\ enabled tinyint(4) not null default \'1\', quota int(11) unsigned not null default \'2048000\', primary key (email) ); mysql>insert into transport VALUES (\'virtual1.domain\', \'virtual\'); mysql>insert into users VALUES (\'test@virtual1.domain\', \'password\', \'1000\', \'12\', \\ \'/var/spool/mail/virtual1.domain/test/\', \'1\', \'2048000\');

так точно ли не попадают?? а если эту базу поюзали сначала с magic_quotes и addslashes? если база не твоя и с ней по определенным причинам так поработали? конечно можно перелопатить кучу мусора удаляя ненужное, но... ведь по большому счету проблемы-то нет в использовании stripslashes, кроме, как удаление нужных символов "\" ))

---------
С уважением!
wolk.nutep.com
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33107880
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
wolkа если эту базу поюзали сначала с magic_quotes и addslashes?Ну и что?если база не твоя и с ней по определенным причинам так поработали?Где в вопросе звучит хоть слово о том, что человек работает с чужой базой, с которой до этого работал программист-недоумок? У человека проблемы со своим кодом и своей базой, он только учиться.конечно можно перелопатить кучу мусора удаляя ненужное, но... ведь по большому счету проблемы-то нет в использовании stripslashes, кроме, как удаление нужных символов "\" ))А с чего вы взяли, что это - не проблема? Если продолжать ваш тернистый путь гадалки - а если там бинарные данные лежат? В базе должны лежать данные, а не их представление.
...
Рейтинг: 0 / 0
(PHP) Как убрать \
    #33107885
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
wolkвырезка из БД:Это то здесь при чём? Мы о php_mysql говорим или о идущем в поставке с mysql консольном mysql?
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как убрать \
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]