提交后刷新php

时间:2018-08-21 21:48:31

标签: php sql

我是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?

3 个答案:

答案 0 :(得分:2)

成功添加行后,您应该使用header进行重定向。
实际上,您需要阅读有关mysqli::prepared的信息-它可以防止您的网站受到SQL注入。

可能您需要阅读有关ternary operator的信息-有时您可以使用它来减少代码量。

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

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.
    }

}

答案 1 :(得分:0)

如此简单,提交后刷新页面

    if( mysqli_query($connect, $sql) )
    {
      header("Location: your pace link here");
    }

答案 2 :(得分: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.
    }

}