PHP将POST和GET请求混合到一个页面

时间:2011-07-02 20:54:49

标签: php forms post get

阅读后:

据我所知,GET用于检索页面而不更改服务器,POST用于更改服务器的内容(插入,更新,删除)。

现在我编写了一个使用参数StationNr设置的GET请求调用的页面。用户可以填写表单并向参数Filter设置的同一页面发出POST请求。但我不想错过参数StationNr因此我认为我将它放入一个隐藏的输入字段。但是参数StationNr要么在$_GET变量(第一次调用),要么在$_POST变量中(第二次调用)。我可以这样做:

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

但我不喜欢这个。另外,由于:When and why should $_REQUEST be used instead of $_GET / $_POST / $_COOKIE?

,我不想使用$_REQUEST['StationNr']

我认为这是一个常见的问题,但我还没有面对,因为我是编写php页面的初学者。你是怎么解决这个问题的?

谢谢!

3 个答案:

答案 0 :(得分:2)

虽然您可以使用?foo = bar在POST请求中推送GET值,但我建议您检查请求方法:

if($_SERVER['REQUEST_METHOD'] == 'POST') { ... }

答案 1 :(得分:1)

只需使用

<form method="post" action="script.php?get=variables">
 <input name="your_inputs" />
</form>

答案 2 :(得分:-2)

正确的语法是:

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