【发布时间】:2011-12-18 18:47:26
【问题描述】:
在我的页面顶部附近,我有这个:
<?php $id = $_GET['id']; ?>
然后我有一些从 POST 读取的表单检查条件:
if (isset($_POST['completeSubmit'])) {
//code
}
最后,我有一个如下所示的 HTML 表单:
<form action="<?php echo $_SERVER['PHP_SELF']."?id=$id"; ?>" name="complete" method="post">
<input type="submit" id="textButton" name="completeSubmit" value="[mark as complete]">
</form>
该页面最初是使用带有 id 变量的 GET 访问的,如下所示:
http://website.com/page.php?id=1
所有后续的表单提交(被重定向到同一页面)都会失败。我知道您不能在同一个请求中同时发送 GET 和 POST,但是看到我的表单正在使用 POST 提交到$_SERVER['PHP_SELF']."?id=$id",它不应该工作吗?这是我第一次尝试这个,所以很可能我忽略了一些微不足道的事情。
【问题讨论】:
-
这应该可以正常工作——您可能需要调查其他区域是否存在可能的错误......
-
是的,这应该可以。同时 GET 和 POST 确实是可能的。您可以尝试检查表单的 HTML 以查看 action 属性是否正确。转储 $_GET 和 $_POST 变量。在您的目标页面中也可能会有所帮助。
-
通常 ID 和 NAME 属性应该相等...
-
@jeanre 很抱歉让您失望了,但同时 GET 和 POST 是完全不可能的。
-
@tandu 的答案在这里是最好的——虽然您确实不能同时使用 HTTP GET 和 HTTP POST,但应该可以从 POST 请求访问 $_GET 变量