Как сохранить URL-адрес в пробелах?Ни один метод не работает - PullRequest
1 голос
/ 09 мая 2011

У меня много проблем с этим, $ report ломается в пробел в URL, и я пытаюсь исправить эту проблему уже пару дней, и ничего не получается.

<form onsubmit="return validate(this)" method="post" action=
    <?
         echo "\"reports1.php?report=";
         echo rawurlencode($report);
         echo "\"";
    ?>              
>

...

if(isset($_GET['report'])){
        $report = $_GET['report'];
        echo "<script>alert('All reports will be appended to \"".$report."\" until GET and POST data are cleared.')</script>";
    }
    elseif($country != NULL){
        $report = $date." ".$country." ".$topic;
    }

    elseif($country == NULL){
        $report = $date." ".$region." ".$topic;
    }

...

Вот пример; $ report получает $ _GET'ted как

"2011-05-08", хотя это должно быть но это $ _POSTING как "2011-05-08 Brazil Botulism"
"reports1.php? report = 2011-05-08"

Ответы [ 3 ]

4 голосов
/ 09 мая 2011

urlencode() будет работать.

Убедитесь, что вы заключили адрес в кавычки, и он находится в одной строке:

<form ... action="reports1.php?report=2011-05-08%20Brazil%20Botulism">
0 голосов
/ 09 мая 2011

ну, вам не нужно это записывать,

echo "hi";

будет работать с вами нормально, в случае кода выше, есть только одинпроблема в том, что вы используете метод $ _POST для вашей формы, а не $ _GET

form onsubmit = "return validate (this)" method = "post" action = должно быть

очень хороший и простой код отладки, который может помочь вам восстановить все $ _GET и присвоить их переменным,

с

foreach($_GET as $var=>$val)$$var=$val;

этот код будет опубликованполучает и присваивает их переменным с собственным именем ($ report вместо $ _GET ['report'];) вы можете использовать эту функцию на всех $ _post и $ _get, чтобы узнать, где именно проблема:) ..

надеюсь, это поможет

0 голосов
/ 09 мая 2011

Используйте функцию PHP trim() для удаления ненужных пробелов в начале и конце строки.

...