powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Stripslashes
25 сообщений из 27, страница 1 из 2
Stripslashes
    #39786159
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция Stripslashes не удаляет экранирование символов после применения addslashes, ПОЧЕМУ?
...
Рейтинг: 0 / 0
Stripslashes
    #39786221
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код:
Код: php
1.
2.
3.
4.
5.
<?php
$str_1 = "O'Reilly";
$str_2 = addslashes($str_1);
$str_3 = stripslashes($str_2);
var_dump($str_1, $str_2, $str_3);

Выхлоп:
Код: php
1.
2.
3.
string(8) "O'Reilly"
string(9) "O\'Reilly"
string(8) "O'Reilly"

Что я сделал не так?
...
Рейтинг: 0 / 0
Stripslashes
    #39786369
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, совсем программисты слабенькие пошли
...
Рейтинг: 0 / 0
Stripslashes
    #39787087
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleКод:
Код: php
1.
2.
3.
4.
5.
<?php
$str_1 = "O'Reilly";
$str_2 = addslashes($str_1);
$str_3 = stripslashes($str_2);
var_dump($str_1, $str_2, $str_3);

Выхлоп:
Код: php
1.
2.
3.
string(8) "O'Reilly"
string(9) "O\'Reilly"
string(8) "O'Reilly"

Что я сделал не так?

всё правильно, а вот, когда данные считываются, например, с инпута - результата нет, хотя при записи в базу и чтении из неё функции отрабатываются -забавно..
...
Рейтинг: 0 / 0
Stripslashes
    #39787088
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_а вот, когда данные считываются, например, с инпутаВы хотите сказать, что имеет значение, откуда попали данные в переменную $str_1 - строковое значение было присвоено явно или значение было прочитано из входного потока?
Код, демонстрирующий проблему - в студию!
...
Рейтинг: 0 / 0
Stripslashes
    #39787133
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл такой: заполняются поля формы, которая отправляется на выполнение (post), при отправке значения полей формы экранируются addslashes-ом.
Далее данные проверяются, например, на корректное заполнение полей формы. В случае какого-то несоответствия - выходит форма с сообщением о несоответствии и с заполненными полями в виде отправленных данных, которые заэкранированы, а stripslashes экранирование не снимает.
...
Рейтинг: 0 / 0
Stripslashes
    #39787138
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_при отправке значения полей формы экранируются addslashes-ом.Это как?
...
Рейтинг: 0 / 0
Stripslashes
    #39787141
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну при обработке нажатия кнопки, например, $message = addslashes($message);
...
Рейтинг: 0 / 0
Stripslashes
    #39787142
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вообще нужен этот addslashes?
...
Рейтинг: 0 / 0
Stripslashes
    #39787145
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_ну при обработке нажатия кнопки, например, $message = addslashes($message);Дык это совсем не при отправке, это уже после получения данных формы на сервере.
Таким образом, исходные данные где-то из какого-то $_POST['field_name'] трансформируются в $message. Как именно и что происходит далее - не понятно.
Показывайте код и данные в контрольных точках (см. пример выше) начиная от $_POST.
...
Рейтинг: 0 / 0
Stripslashes
    #39787156
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettЗачем вообще нужен этот addslashes?

В любом случае данные следует хранить в "сыром" виде. Если выводите их в где-то в HTML - применяете соотвествующий скейпинг (htmlspecialchars например в php). Если суете в СУБД - эскепите при помощи функций драйвера (mysql_real_escape_string или ее аналоги). А вообще по хорошему нужно передавать в СУБД через параметры.
...
Рейтинг: 0 / 0
Stripslashes
    #39787158
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, вот:
Код: php
1.
2.
3.
4.
$message = $_POST['message'];
$message = addslashes($message);
echo '<input name="message" type="text" ';
echo 'value="'.stripslashes($title).'">';
...
Рейтинг: 0 / 0
Stripslashes
    #39787159
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. так
Код: php
1.
2.
3.
4.
$message = $_POST['message'];
$message = addslashes($message);
echo '<input name="message" type="text" ';
echo 'value="'.stripslashes($message).'">';
...
Рейтинг: 0 / 0
Stripslashes
    #39787165
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И... Где/как проблему увидеть, показывайте.
...
Рейтинг: 0 / 0
Stripslashes
    #39787170
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при этом
Код: php
1.
2.
3.
4.
$message = "O'Reilly";
$message = addslashes($message);
echo '<input name="message" type="text" ';
echo 'value="'.htmlspecialchars(stripslashes($message)).'">';


в инпуте возникает: \"O\'Reilly\"
...
Рейтинг: 0 / 0
Stripslashes
    #39787172
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_при этом
Код: php
1.
2.
3.
4.
$message = "O'Reilly";
$message = addslashes($message);
echo '<input name="message" type="text" ';
echo 'value="'.htmlspecialchars(stripslashes($message)).'">';


в инпуте возникает: \"O\'Reilly\"

Серьзено?
...
Рейтинг: 0 / 0
Stripslashes
    #39787173
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага
...
Рейтинг: 0 / 0
Stripslashes
    #39787184
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведенный код в файле
Код: php
1.
2.
3.
4.
5.
6.
$ cat ./t.php
<?php
$message = "O'Reilly";
$message = addslashes($message);
echo '<input name="message" type="text" ';
echo 'value="'.htmlspecialchars(stripslashes($message)).'">';


Запускаем...
Код: php
1.
2.
$ php -f ./t.php
<input name="message" type="text" value="O'Reilly">

Версия PHP 5.6.38.

Что я сделал не так?
...
Рейтинг: 0 / 0
Stripslashes
    #39787199
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

magic_quotes_gpc какой-нибудь древний или что-то вроде того
...
Рейтинг: 0 / 0
Stripslashes
    #39787200
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кое как вспомнил, что такое было
...
Рейтинг: 0 / 0
Stripslashes
    #39787204
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettmagic_quotes_gpc какой-нибудьТогда уж magic_quotes_sybase . Однако, оно из той же некрофилии.
...
Рейтинг: 0 / 0
Stripslashes
    #39787213
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я даже таких слов не знаю, но вроде в примере автора нет ничего связанного с субд.
...
Рейтинг: 0 / 0
Stripslashes
    #39787214
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох, почитал, крутой костыль, может и он.
...
Рейтинг: 0 / 0
Stripslashes
    #39787218
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Да ну не факт. К тому же, не ясно, с какого икса взялись экранированные двойные кавычки по краям строки.
kasper_в инпуте возникает: \"O\'Reilly\" Возможно, ТС не тестировал свой пример.
...
Рейтинг: 0 / 0
Stripslashes
    #39787251
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if ( !get_magic_quotes_gpc() )
$message = addslashes($message);
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Stripslashes
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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