显示重定向消息?

时间:2011-08-13 11:38:16

标签: php http-headers

我正在创建一个页面,您输入信息并单击“安装”,然后它将转到名为“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!");
}
?>

5 个答案:

答案 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']);
}