Как очистить строку в PHP, которая содержит "; Echo"? (У меня есть веская причина) - PullRequest
0 голосов
/ 11 мая 2010

Я превратил этот случай в простую страницу PHP, которая подчиняется сама себе.Моя проблема в том, что я отправляю результаты соревнований, и одно из имен девушки - Эхо ... прекрасное имя.

Текст проблемы, который я отправляю, это: прыжок с шестом - Рэйчел Саймонс, Тауэр6;Echo Wilson, Cit, 8-0;Молли Рэндалл, Tow, 7-0;

Итак, вы видите точку с запятой, за которой следует пробел, за которым следует эхо ...

После отправки выдается:не поддерживается

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

Вот тестовый файл PHP.

<html>
<head>
<title>title</title>
</head>
<body>
<?php
echo "<h3>Edit meet info below</h3>";
echo "<form action=\"test.php\" method=\"post\" id=\"submitForm\">";
echo "Full Results:<br/><textarea NAME=\"results\" id=\"results\" rows=\"20\" cols=\"80\" MAXLENGTH=\"8191\"></textarea><br/><br/>";
echo "<input type=\"submit\" name=\"submitMeet\" value=\"Submit\">";
echo "</form>";
?>
</body>
</html>

Ответы [ 2 ]

4 голосов
/ 11 мая 2010

Звучит так, как будто у вас есть некачественная система безопасности (возможно, mod_security?), Которая сканирует запросы и отклоняет те, которые выглядят так, как будто они представляют опасность.

Вам нужно будет спросить своего веб-хоста или что-то еще, могут ли они отключить его. НЕТ функции PHP, которая будет произвольно отклонять запрос POST на основе любой комбинации текста. (По крайней мере, не в этом случае)

0 голосов
/ 11 мая 2010

Вам просто нужно заставить Эхо изменить ее имя ... имя ... имя.

Серьезно, но посмотрите, что предлагает вебдестроя. Если это не удастся, я думаю, что быстрым и грязным решением было бы изменить разделитель, который вы используете для разделения имен в запросе POST, а затем изменить этот разделитель на точку с запятой после его получения. Таким образом, вы бы отправили что-то вроде этого:

Pole vault - Rachel Simons, Tow, 8-6||Echo Wilson, Cit, 8-0||Molly Randall, Tow, 7-0||

Тогда сделайте это:

$data = str_replace('||', ';', $the_data_you_posted);

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

...