1

我是 PHP 新手,我还是个学习者!我对这个项目有一个问题:我正在创建一个保留我最喜欢的网站的页面,我使用 GET 方法将网站的标题、URL 和徽标发送到服务器,并在提交变量后进入 URL的页面。因此,提交后,每次刷新页面时,它都会将上一个链接添加到服务器。(因为变量仍在 URL 中)我该如何解决这个问题,请帮忙?

if(isset($_GET['Add'])){
    $title = $_GET['Title'];
    $url = $_GET['Url'];
    $logo = $_GET['Logo'];
    if(strlen($logo) > 0){
        $sql = 'INSERT INTO links (title, url, logo) VALUE ("'.$title.'", "'.$url.'", "Icons/'.$logo.'");';
        mysqli_query($connect, $sql);
    } else{
        $logo = 'DefaultIcon.png';
        $sql = 'INSERT INTO links (title, url, logo) VALUE ("'.$title.'", "'.$url.'", "Icons/'.$logo.'");';
        mysqli_query($connect, $sql);
    }

}

提交后如何从变量中清除 URL?

4

3 回答 3

2

您应该header在成功添加行时使用重定向。
实际上你需要阅读一下mysqli::prepared——它可以防止你的网站被 SQL 注入。

可能您需要阅读有关三元运算符的信息- 有时您可以使用它来减少代码。

例如 - 您的带有三元运算符的代码可能如下所示:

if(isset($_GET['Add'])){
    $title = $_GET['Title'];
    $url = $_GET['Url'];
    $logo = $_GET['Logo'] ? : 'DefaultIcon.png'; // this is a ternary operator.
    $sql = 'INSERT INTO links (title, url, logo) VALUE ("'.$title.'", "'.$url.'", "Icons/'.$logo.'");';
    if (mysqli_query($connect, $sql) === true) {
        header('Location: '.$_SERVER['PHP_SELF']); // your redirect can be look that.
    }

}
于 2018-08-21T21:52:04.173 回答
0

您需要将其重定向到您的成功页面以删除输入的数据。

像这样的东西......

    if(isset($_GET['Add'])){
    $title = $_GET['Title'];
    $url = $_GET['Url'];
    $logo = $_GET['Logo'];
    if(strlen($logo) > 0){
        $sql = 'INSERT INTO links (title, url, logo) VALUE ("'.$title.'", "'.$url.'",
                "Icons/'.$logo.'");';
        mysqli_query($connect, $sql);
         header('location: success.php'); //rename it to your success page.
    }

}
于 2018-08-22T01:01:46.657 回答
0

像这样简单 提交后刷新页面

    if( mysqli_query($connect, $sql) )
    {
      header("Location: your pace link here");
    }
于 2018-08-22T00:57:51.960 回答