我已经设置了一些会话代码,但它似乎没有工作!
在登录表单上的POST请求的登录验证脚本中,我的代码如下:
if( isset($_POST['email']) && isset($_POST['password']) )
{
// Perform Lookup
$sql = "SELECT * FROM authentication WHERE email='" . $email . "';";
$query = mysqli_query($conn,$sql);
$fetch = mysqli_fetch_assoc($query);
$fetched = $fetch['email'];
if($fetched == $email)
{
// auth okay, setup session
$_SESSION['user'] = $_POST['email'];
// redirect to required page
header( "Location: app.php" );
} else {
// didn't auth go back to loginform
//header( "Location: fail.html" );
die("Failed to auth.");
}
} else {
// username and password not given so go back to login
//header( "Location: loginform.html" );
die("NO Username or Password Given");
}
?>
在我的"安全"页面位于顶部..
<?php
session_start();
session_regenerate_id();
if(!isset($_SESSION['user'])) // if there is no valid session
{
header("Location: index.php?message=notauthed");
}
require 'includes/header.php';
$name = $_SESSION['user'];
?>
在我的登出脚本中,这已经到位..
<?php
session_start();
unset($_SESSION['user']);
session_destroy();
header("Location: index.html");
?>
Woops完全忘了包含问题哈哈:)
登录脚本有效,重定向正常。
登录后,我无法回显$ name = $ _SESSION [&#39; user&#39;];
此外,当我退出时,我仍然可以访问应用页面。
另外**我在PHP 5.3上运行?我认为。不是最新的,hostgator php ..
答案 0 :(得分:0)
尝试:
<?php
session_start();
session_unset($_SESSION['user']);
header("Location: index.html");
?>
这种方法不是最好的,因为它只清除变量的内容,而不是会话本身,如果你试图再次检查它仍然会出现,所以试试这个:
<?php
session_start();
session_destroy();
header("Location: index.html");
?>
希望它有所帮助。