php stripslashes оставляет один слэш - PullRequest
1 голос
/ 13 января 2012

Как говорит субъект, у меня есть $_POST данные, которые мне нужны для удаления всех слешей.Тем не менее, он оставляет после себя одну, и когда в форме появляются ошибки, он печатает данные поста обратно пользователю, поэтому им не нужно повторно вводить их.Когда они снова отправляют страницу, количество слешей значительно увеличивается с каждым отправлением с ошибками.Код, который я имею, прост и использует stripslashes($_POST['first']), а затем возвращает ошибки.Я также пытался str_replace избавиться от последних \, но это не работает.Есть идеи?

Код РЕДАКТИРОВАТЬ --------

   $first =  stripslashes($_POST[f_name]); 
   $first = str_replace('\\' , '', $_POST[f_name]);

Ответы [ 5 ]

4 голосов
/ 13 января 2012

stripslashes() удаляет только первый последовательный обратный слеш (если они являются последовательными), потому что обратный слеш используется для экранирования обратного слеша.

Вы должны использовать str_replace("\\", "", $_POST['first']);

обновление если вы пытаетесь удалить его переднюю косую черту, используйте str_replace("/", "", $_POST['first']);

2 голосов
/ 13 января 2012

У вас включены magic_quotes?Stripslashes удалит только те символы, которые использовались для выхода из символа.Поэтому, если вы ХОТИТЕ \ в своем тексте, вам нужно экранировать его, используя два: \.В этом случае два \ будут преобразованы в один \ с полосками.Сделайте print_r ($ _ POST) перед выполнением какой-либо обработки, чтобы увидеть, что на самом деле находится в POST.

1 голос
/ 29 сентября 2013

У меня была похожая проблема, и я использовал очень грубое решение .... Я только что реализовал функцию полоски два раза подряд, или в вашем случае:

$first_temp =  stripslashes($_POST[f_name]);
$first = stripslashes($first_temp);  

Сыро, но у меня это сработало!

1 голос
/ 13 января 2012

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

0 голосов
/ 22 января 2016

Я думаю, что ваш почтовый массив содержит что-то взятое из базы данных, например "is \ 't or Not \' t" для обновления в базе данных.Затем вы делаете одну вещь, когда читаете данные в поле, используя

stripeslashes (data ['description_to_textarea'])

решение проблемы.

...