0

我的<a href>网页中有一个包含以下链接:

<a href=\"?remove=0\">Remove</a>

这很好。然后我通过以下方式引用它:

if(isset($_REQUEST['remove']))

检查它是否已设置,然后执行相关操作(从数组中删除值)。

但是,当我在我的 php 页面中单击另一个表单时,该表单设置为method='POST',该$_GET值保留在 URL 栏中,因此由于某种原因再次传递并破坏了我的程序。

有什么想法吗?

4

2 回答 2

5

听起来action=您的表单中缺少一个道具。如果您没有指定表单应该发布到的位置,它会发布到当前 URL,包括查询字符串。

帖子到当前网址:

<form method="post">

发布到您指定的 URL:

<form method="post" action="mypage.php">
于 2013-03-21T21:30:15.393 回答
0

删除听起来像是一项危险的操作。它不应该在响应 GET 请求时执行:用户可能会重新加载页面,意外再次删除某些内容,或者搜索机器人可能会跟随该链接并删除该内容(当然,假设它具有权限)。即使是现在的浏览器也会进行预取 - 如果预取链接之一是删除链接会发生什么?

因此,明智的做法是检查

if (isset($_POST['remove']))

并将要删除的链接转换为表单。

于 2013-03-21T21:32:18.887 回答