阅读后:
据我所知,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页面的初学者。你是怎么解决这个问题的?
谢谢!
答案 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'];
}