我是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?
答案 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.
}
}