PHP смешивает POST и GET запросы на одной странице - PullRequest
1 голос
/ 03 июля 2011

После прочтения:

Я понимаю, что GET используется для извлечения страницы без изменения сервера, а POST используется для вещей (вставка, обновление, удаление), которые меняют сервер.

Теперь я написал страницу, которая вызывается с помощью запроса GET с установленным параметром StationNr.Пользователь может заполнить форму и сделать запрос POST на той же странице с установленным параметром Filter.Но я не хочу пропустить параметр StationNr, поэтому я решил ввести его в скрытое поле ввода.Но тогда параметр StationNr находится либо в переменной $_GET (первый вызов), либо в переменной $_POST (второй вызов).Я могу сделать что-то вроде:

if (isset($_GET['StationNr']))
    $snr = $_GET['StationNr'];
else if (isset($_POST['StationNr']))
    $nr = $_POST['StationNr'];

Но мне это не нравится.Также я не хочу использовать $_REQUEST['StationNr'] из-за: Когда и почему следует использовать $ _REQUEST вместо $ _GET / $ _POST / $ _COOKIE?

Я думаю, что этообщая проблема, но я еще не сталкивался с этим, потому что я новичок в написании php-страниц.Как вы решили эту проблему?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 03 июля 2011

Хотя вы можете использовать? Foo = bar, чтобы выдавать значения GET в запросе POST, я бы предложил вместо этого проверить метод запроса:

if($_SERVER['REQUEST_METHOD'] == 'POST') { ... }
1 голос
/ 03 июля 2011

просто используйте

<form method="post" action="script.php?get=variables">
 <input name="your_inputs" />
</form>
0 голосов
/ 03 июля 2011

Правильный синтаксис будет:

if (isset($_GET['StationNr'])) {   
$snr = $_GET['StationNr'];
}else if (isset($_POST['StationNr']))    
$nr = $_POST['StationNr']; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...