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不应该有效吗?这是我第一次尝试这样做,所以我很可能忽略了一些微不足道的事情.
你可以同时使用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)