我是PHP新手,而且我还是个初学者!我在这个项目中遇到了一个问题:我正在创建一个保存我最喜欢的网站的页面,我使用GET方法将网站的标题、URL和Logo发送到服务器,并在提交变量后进入页面的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?
发布于 2018-08-22 05:52:04
当成功添加行时,您应该使用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.
}
}
发布于 2018-08-22 08:57:52
像这样简单,提交后刷新页面
if( mysqli_query($connect, $sql) )
{
header("Location: your pace link here");
}
发布于 2018-08-22 09:01:47
您需要将其重定向到您的成功页面,以便删除输入的数据。
就像这样……
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.
}
}
https://stackoverflow.com/questions/51957144
复制相似问题