我正在创建一个页面,您输入信息并单击“安装”,然后它将转到名为“install_submit.php”的文件。当缺少信息时,我将其重定向回表单页面,显示消息“Missing Information”!
这是我目前的“install_submit.php”代码。
<?php
$dbname = $_POST['db_name'];
$dbuser = $_POST['db_user'];
$dbpass = $_POST['db_pass'];
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($dbname) || empty($dbuser) || empty($dbpass) || empty($username) || empty($password))
{
header("Location: install.php");
Echo("Missing Information!");
}else{
Echo("Success!");
}
?>
答案 0 :(得分:2)
将其保存在会话中并将其显示在表单位置。
$_SESSION['error_message'] = "Missing Information!";
在您的表单位置:
<p class="errors"><?php if (!empty($_SESSION['error_message']) echo $_SESSION['error_message']; ?></p>
答案 1 :(得分:1)
您可以更改标题中的网址并传递参数,例如
header("Location: install.php?submit=false");
然后在你的“install_submit.php”中你可以获得信息
if($_GET['submit'] == 'false') {
echo("Missing Information!");
}
答案 2 :(得分:1)
您需要使用会话变量,如下所示:
session_start();
if(empty($dbname) || empty($dbuser) || empty($dbpass) || empty($username) || empty($password))
{
$_SESSION["error_message"] = "Missing Information!";
header("Location: install.php");
}else{
unset($_SESSION["error_message"]);
echo "Success!";
}
然后,在install.php上引用会话变量,如下所示:
<?php
if (isset($_SESSION["error_message"])) {
echo $_SESSION["error_message"];
}
?>
答案 3 :(得分:1)
不要进行重定向,也不要使用单独的网址进行处理。在同一页面处理表单提交。您不希望您的用户再次提供的所有信息。
您可以重定向到install.php?error=true&db_name=...&db_user=...
,但这更复杂。
答案 4 :(得分:0)
重定向后,您将无法再从当前页面输出。这就是你的回声(“缺少信息!”);目前什么都不做。
您可以尝试在会话中设置错误消息,然后检查是否在表单页面上填充了错误会话:
session_start();
$_SESSION['errmsg'] = "Missing information!";
header("Location: install.php");
然后在你的install.php中:
session_start();
if(isset($_SESSION['errmsg'])) {
echo $_SESSION['errmsg'];
unset($_SESSION['errmsg']);
}