PHP中的Flash消息清除$ _SESSION密钥,然后应用。

我遇到了一个问题,我称之为Flash消息。
它应该在输出后从$ _SESSION数组中清除一个键,但它在之前将其清除。我知道,因为如果我评论的取消设置()它的作品(当然关键是不被清除,并坚持下去的刷新)总之,这将是代码:

if (isset($_SESSION['error'])) { 

echo('<p style="color:red; margin:0">'. $_SESSION['error'] .'</p>');

unset($_SESSION['error']);

}

,因为它是回声语句不工作。如果注释未设置回声的作品,但$ _SESSION键没有清除,我需要输出后清除它。 非常奇怪,我在其他文件中编码相同,它的工作完美无瑕。 这里的谜语爱好者的整个代码。

<?php 

session_start();

if(isset($_POST['username']) && isset($_POST['password'])){

unset($_SESSION['username']);

if($_POST['password'] =='umsi' && $_POST['username'] == 'chuck') {

$_SESSION['username'] = $_POST['username'];

$_SESSION['success'] = 'Logged in successfuly';

$_SESSION['password'] = $_POST['password'];

header('Location: app.php');

return;

}

else {

$_SESSION['error'] = 'Login incorrect';

header('Location: log.php');

}

}

?>

<!DOCTYPE html>

<html lang="es">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<link rel="stylesheet" href="main.css">

<title>Log In</title>

</head>

<body>

<div class="log">

<?php

if (isset($_SESSION['error'])) {

echo('<p style="color:red; margin:0">'. $_SESSION['error'] .'</p>');

unset($_SESSION['error']);

}

?>

<h1>Log in</h1>

<form method="post">

<label for="username">Username</label>

<input type="text" name="username">

<label for="password">Password</label>

<input type="password" name="password">

<button type="submit">Submit</button>

</form>

</div>

</body>

</html>

回答:

感谢劳伦斯Cherone我能实现我错过了在其他的语句末尾的回报。

else { 

$_SESSION['error'] = 'Login incorrect';

exit(header('Location: log.php'));

}

现在它的工作原理!

以上是 PHP中的Flash消息清除$ _SESSION密钥,然后应用。 的全部内容, 来源链接: utcz.com/qa/259050.html

回到顶部