靠近我的页面顶部,我有这个:
<?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"
不应该有效吗?这是我第一次尝试这样做,所以我很可能忽略了一些微不足道的事情。
答案 0 :(得分:6)
你可以同时使用get和post,但你不应该。如果您想继续发送ID,这很简单:
<form ...
<input type="submit" ...
<input type="hidden" name="id"
value="<?php echo htmlspecialchars($_GET['id'], ENT_QUOTES); ?>" />
</form>
答案 1 :(得分:0)
当然,你不能同时使用GET和POST 方法。
但是,您可以在使用POST方法发送表单时使用查询字符串,该方法用于填充$ _GET数组。
要查找某个错误,您必须提供更多信息。至少有两件事:
和错误...