2013-04-05 2 views
-1

У меня есть текстовое поле и кнопка отправки, когда я нажимаю кнопку отправки, которую я хочу добавить в строку запроса.PHP Добавлено в строку запроса для отправки

пример

http://www.fakewebsite.com/?name=mike

Но мое имя появляется пустой

Вот мой код

<?php 

if($_POST){ 


    echo $_POST['name']; 




}else{ ?> 


    <form action="http://www.fakewebsite.com/test.php?name=<?php $_SERVER['name']; ?>" method="post"> 
    <label for="name">Name</label><input type="text" name="name" id="name" /> 
    <input type="submit" name="submit" id="submit" /> 
    </form> 


<?php } ?> 
+1

Почему '$ _SERVER'? – elclanrs

+0

использовать метод get вместо сообщения –

+0

Использовать 'method =" get "' - '

' - см. Http: // www.w3.org/TR/html401/interact/forms.html#h-17.3 – Sean

ответ

0

альтернативное решение

<?php 

if(!empty($_POST)){ 

    echo $_POST['name']; 

}else{ ?> 


    <form action="http://www.fakewebsite.com/test.php" method="post"> 
    <label for="name">Name</label><input type="text" value="<?=$_SERVER['name']; ?>" name="name" id="name" /> 
    <input type="submit" name="submit" id="submit" /> 
    </form> 


<?php } ?> 
+0

в виду, что в PHP всегда присутствует $ _POST. Можете проверить, пуст ли пуст, если (! Empty ($ _ POST)); –

+0

вы скопировали упомянутую проблему 3. '' Ничего не выводит. Эхо отсутствует – scones

+0

@ user2247178 работает ли он на вас? –

1

POST запрос отличается от GET запросами в отношении того, как они отправляют данные на сервер.

с получением элементов данных прилагается к URL-адресу (например, вы пытались).

с постом элементы данных находятся в теле запроса http.

Это проблема 1: Вы пытаетесь передать аргумент как параметр get. это может работать, но не гарантируется.

Другое дело, что у вас есть поле ввода с тем же именем name. Поэтому, даже если первое будет работать, поле ввода переопределит эти данные.

Что вы можете сделать для лиса? Вы можете добавить скрытое поле ввода с другим именем, чтобы отправить этот вход обратно на сервер:

<form action="foo.php" method="post"> 
    <input type="hidden" name="other_name" value="<?= $_SERVER['name'] ?>" /> 
    <input type="text" name="name" value="" /> 
    <input type="submit" /> 
</form> 

А также сохранить столкновения имя в чеке.

Edit:

Третья проблема, которая только что появилась мне <? $_SERVER['name'] ?> не выводит данные в $_SERVER['name'].

Чтобы сделать это, вы должны использовать

<?php echo $_SERVER['name'] ?> 

// or, works sometimes 

<?= $_SERVER['name'] ?>