Передача параметра post с двойными кавычками в нескольких формах - PullRequest
0 голосов
/ 09 ноября 2011

Как я могу сдать двойные кавычки с POST? Каждый раз, когда я пытаюсь это сделать, он дает мне \' в первый раз и \\\'\\\ во второй раз и так далее. Я пробовал с str_replace, но он работает только для частей. Есть ли способ исправить эту проблему?

Edit:

После отключения magic_quotes_gpc он все равно не работает на 100% правильно. Моя первая форма имеет скрытое поле ввода. Имеет значение

text 'textinquotes'

За post это значение передается другому php-скрипту. Если я выведу переменную, я получу

text \'textinquotes\'

Если пользователь забыл заполнить поле, я отправляю значения в другой PHP-скрипт для post. В этом php-скрипте я создаю get с параметрами для php-скрипта, где пользователь вводит свои значения. В этом случае я получаю

text \\\'textinquotes\\\'

Если пользователь ввел все правильно, я пишу электронное письмо и сохраняю его в базе данных. В письме я получаю

text \'textinquotes\'

и в базе данных я получаю

text 'textinquotes'.

Что я делаю до сих пор не так?

Для создания get у меня есть следующий код:

$red = $referer."?error=1";
foreach($post as $post_key => $post_value) {
    $red .= "&".$post_key."=".$post_value;
}

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

это либо добавлено PHP из устаревшей функции magic_quotes_gpc,
или какой-то неуместной функцией общего ввода «дезинфекция».

в любом случае вам нужно найти причину и выключить ее навсегда.

для магических цитат вы можете использовать phpinfo(), чтобы увидеть его значение.

если это волшебные кавычки и у вас нет возможности изменять php. В настройках можно очистить хотя бы суперглобальные массивы, чего должно быть достаточно. Есть много кодов на этом сайте, этот Как удалить магические кавычки, если php.ini / .htaccess не редактируется? например

0 голосов
/ 09 ноября 2011

Используйте stripslashes, чтобы удалить форматирование PHP ваших данных перед их сохранением.

$text = stripslashes($_POST['data']);
...