【发布时间】:2011-07-02 20:54:48
【问题描述】:
看完后:
我了解,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'],因为:When and why should $_REQUEST be used instead of $_GET / $_POST / $_COOKIE?
我认为这是一个常见问题,但我还没有遇到过,因为我是编写 php 页面的初学者。你是怎么解决这个问题的?
谢谢!
【问题讨论】:
-
这可能不是最简洁的设计,你当然可以向一个地址发起 POST 请求,在该地址上附加一个
?param=value&...字符串以同时获得 GET 和 POST。 -
$_REQUEST的坏话是没有根据的。对于较旧的设置,它会受到 cookie 固定的影响,这通常是一个可用性问题,但不是安全问题。尽管如此,它的目的是作为一个快捷方式(GET/POST 输入参数作为别名)。