从删除页面重定向PHP

时间:2020-07-29 09:01:36

标签: php mysql mysqli

我有两页:index.phpstats.php

这两个页​​面均包含来自数据库的相同查询,并具有删除按钮。按下delete-button时,它会像这样重定向:https://example.com/delete.php?id=50;,其中50是行ID。

delete.php看起来像这样:

<?php

include "db.php"; // Using database connection file here

$id = $_GET['id']; // get id through query string

$del = mysqli_query($link,"DELETE FROM table WHERE id = '$id'"); // delete query

if($del)
{
    mysqli_close($link); // Close connection
    header("location:index.php"); // redirects to all records page
    exit;   
}
else
{
    echo "Error deleting record"; // display error message if not delete
}
?>

现在的问题是,当用户按Delete键时,它将删除该行,然后重定向回index.php。但是,如何检查从哪个页面删除了该页面,然后重定向回该页面呢?

编辑:

出于测试目的,我在下面尝试了类似的操作,但是当从两个页面删除时,它们都给了我相同的输出:“ 2”:

if($del)
{
    if($_SERVER['HTTP_REFERER'] == "index.php")
    {
        echo "1";
    } else {
        
    echo "2";
    
    }   
}

2 个答案:

答案 0 :(得分:2)

您可以使用$_SERVER["HTTP_REFERER"]
它包含上一页的URL。

$_SERVER['HTTP_REFERER']包含完整的URL。
例如:http://localhost/my-site/index.php

所以您可以这样做:

header("location:".$_SERVER['HTTP_REFERER']);

答案 1 :(得分:1)

正如@Bazaim所说。使用$_SERVER['HTTP_REFERER']

出于您的目的,可能是这样的:

if ($del) {
   ...
   header('location: ' . $_SERVER['HTTP_REFERER'])
}

其他情况:您在msql查询中使用$_GET['id']。如果要在您的网址中添加?id=0' OR '1=1。 (id = 0%27%20OR%20%271 = 1)这可能会删除整个表格。您可能需要阅读有关mysql注入的内容。