2017-09-26 63 views
0

我有一个php页面在这个页面我显示的数据来自mysql数据库也在同一页我有一个HTML窗体来做一些搜索和这个结果搜索也出现在同一页面中。PHP点击任何按钮或链接后回到搜索结果

此表的每一行都有一个图标delete当我点击这个图标时,我从mysql数据库中删除了该行的信息。

这是我的删除代码

if(isset($_GET['delete'])){ 
    $deleteid=secure($_GET['delete'],"num"); 
    $checkQuery=mysqli_query($conn,"select column from table where column='$deleteid' limit 1")or die(mysqli_error($conn)); 
    if(mysqli_num_rows($checkQuery)==1){ 
     dbRowDelete("table","WHERE column='$deleteid'"); 
     header("location:gm-tasks.php?msg=8"); 
    }else{ 
     header("location:gm-tasks.php"); 
    } 
} 

我的节目数据和搜索代码的一个例子:

if(!isset($_POST['submit']) || isset($_POST['clear'])){ 
//show all data 
} 

if(isset($_POST['submit'])) { 
//Show search results 
} 

我的问题是如何能后,我删除一行要回搜索结果。

我不想在删除后显示所有数据,我只想显示搜索的结果,而不是我删除的行。

我已经试过这$_SERVER['http_referrer'];但它并没有解决我的问题

+2

您的代码可能容易受到SQL注入攻击。您应该使用参数化查询和准备语句来帮助防止攻击者通过使用恶意输入值来危害数据库。 http://bobby-tables.com给出了风险的解释,以及如何使用PHP/mysqli安全编写查询的一些示例。切勿将未经协商的数据直接插入到您的SQL中。 – ADyson

+1

至于你的问题,我们不知道你的搜索结果如何显示在第一位,所以我们不能说如何回到他们。想必您需要传递或存储一些与最近搜索有关的参数。 – ADyson

+1

使用'GET'修改数据是不好的做法。 'GET'参数只能*用于检索数据。 – IsThisJavascript

回答

5

你有POST和GET倒退。

  • GET应该是安全的。你不应该使用GET来删除东西。 POST可能是不安全的。你应该使用POST来删除东西(或DELETE,这对于常规的表单提交来说是不实际的)。 (这是根据HTTP规范)。
  • GET旨在获取信息。当您搜索显示数据时,您应该使用GET。
  • GET将数据存储在URL中,以便您可以链接到它。 POST不会。您需要链接到搜索结果以回到它们。
+0

好吧,你建议改变我的搜索表单来获取和使用后删除任何数据 –

+0

如果我改变我的表格,让我怎么回到我的搜索结果? –

+0

然后,搜索结果将有自己的URL,您可以链接到它。推荐人可能会完成这项工作。或者您可以使用隐藏输入在POST数据中编码当前页面的URL。 – Quentin