![](/img/trans.png)
[英]What is the proper way of only having one page with get requests php?
[英]PHP mixing POST and GET Requests to one page
看完之后:
我了解,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'];
但我不喜欢这个。 我也不想使用$_REQUEST['StationNr']
因为: 何时以及为什么应该使用 $_REQUEST 代替 $_GET / $_POST / $_COOKIE?
我认为这是一个常见问题,但我还没有遇到过,因为我是编写 php 页面的初学者。 你是如何解决这个问题的?
谢谢!
虽然您可以使用?foo=bar 在 POST 请求中推送 GET 值,但我建议改为检查请求方法:
if($_SERVER['REQUEST_METHOD'] == 'POST') { ... }
只需使用
<form method="post" action="script.php?get=variables">
<input name="your_inputs" />
</form>
正确的语法是:
if (isset($_GET['StationNr'])) {
$snr = $_GET['StationNr'];
}else if (isset($_POST['StationNr']))
$nr = $_POST['StationNr'];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.