Показать сообщение на редирект? - PullRequest
0 голосов
/ 13 августа 2011

Я создаю страницу, на которой вы вводите информацию и нажимаете «Установить», а затем она переходит в файл с именем «install_submit.php».Я перенаправляю его обратно на страницу формы, когда отсутствует информация и отображается сообщение «Отсутствует информация»!

Это мой текущий код для «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 ]

2 голосов
/ 13 августа 2011

Сохраните его в сеансе и отобразите в своем местоположении.

$_SESSION['error_message'] = "Missing Information!";

И в своем местоположении:

<p class="errors"><?php if (!empty($_SESSION['error_message']) echo $_SESSION['error_message']; ?></p>
1 голос
/ 13 августа 2011

Не выполняйте перенаправление и не используйте отдельный URL для обработки.Обработайте форму отправки на той же странице.Вы не хотите, чтобы ваш пользователь предоставлял всю информацию снова .

Вы можете перенаправить на install.php?error=true&db_name=...&db_user=..., но это просто сложнее.

1 голос
/ 13 августа 2011

Вам необходимо использовать переменную сеанса, например:

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"];
}
?>
1 голос
/ 13 августа 2011

вы можете изменить URL в заголовке и передать параметр, например,

header("Location: install.php?submit=false");

, затем в вашем "install_submit.php" вы можете получить информацию

if($_GET['submit'] == 'false') {
  echo("Missing Information!"); 
}
0 голосов
/ 13 августа 2011

После перенаправления вы больше не сможете выводить данные с текущей страницы.Вот почему ваше эхо («отсутствует информация!»);в данный момент ничего не делает.

Вы можете попробовать установить сообщение об ошибке в сеансе, а затем проверить, заполняется ли сеанс ошибок на странице формы:

session_start();
$_SESSION['errmsg'] = "Missing information!";
header("Location: install.php");

изатем в вашем install.php:

session_start();
if(isset($_SESSION['errmsg'])) {
echo $_SESSION['errmsg'];
unset($_SESSION['errmsg']);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...