我不能在PHP中同时使用GET和POST

n0p*_*0pe 2 php forms post get

在我的页面顶部附近,我有这个:

<?php $id = $_GET['id']; ?>
Run Code Online (Sandbox Code Playgroud)

然后我有一些从POST读取的表单检查条件:

if (isset($_POST['completeSubmit'])) {
        //code
}
Run Code Online (Sandbox Code Playgroud)

最后,我有一个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> 
Run Code Online (Sandbox Code Playgroud)

最初使用带有id变量的GET访问该页面,如下所示:

http://website.com/page.php?id=1
Run Code Online (Sandbox Code Playgroud)

所有后续表单提交(重定向到同一页面)都会失败.我知道你不能在同一个请求中发送GET和POST,但看到我的表单提交到$_SERVER['PHP_SELF']."?id=$id"使用POST不应该有效吗?这是我第一次尝试这样做,所以我很可能忽略了一些微不足道的事情.

Exp*_*lls 6

可以同时使用get和post,但你不应该.如果您想继续发送ID,这很简单:

<form ...
   <input type="submit" ...
   <input type="hidden" name="id"
      value="<?php echo htmlspecialchars($_GET['id'], ENT_QUOTES); ?>" />
</form>
Run Code Online (Sandbox Code Playgroud)