我的<a href>
网页中有一个包含以下链接:
<a href=\"?remove=0\">Remove</a>
这很好。然后我通过以下方式引用它:
if(isset($_REQUEST['remove']))
检查它是否已设置,然后执行相关操作(从数组中删除值)。
但是,当我在我的 php 页面中单击另一个表单时,该表单设置为method='POST'
,该$_GET
值保留在 URL 栏中,因此由于某种原因再次传递并破坏了我的程序。
有什么想法吗?
我的<a href>
网页中有一个包含以下链接:
<a href=\"?remove=0\">Remove</a>
这很好。然后我通过以下方式引用它:
if(isset($_REQUEST['remove']))
检查它是否已设置,然后执行相关操作(从数组中删除值)。
但是,当我在我的 php 页面中单击另一个表单时,该表单设置为method='POST'
,该$_GET
值保留在 URL 栏中,因此由于某种原因再次传递并破坏了我的程序。
有什么想法吗?
听起来action=
您的表单中缺少一个道具。如果您没有指定表单应该发布到的位置,它会发布到当前 URL,包括查询字符串。
帖子到当前网址:
<form method="post">
发布到您指定的 URL:
<form method="post" action="mypage.php">
删除听起来像是一项危险的操作。它不应该在响应 GET 请求时执行:用户可能会重新加载页面,意外再次删除某些内容,或者搜索机器人可能会跟随该链接并删除该内容(当然,假设它具有权限)。即使是现在的浏览器也会进行预取 - 如果预取链接之一是删除链接会发生什么?
因此,明智的做法是检查
if (isset($_POST['remove']))
并将要删除的链接转换为表单。