我遇到了一些我无法解决的问题。 我在php中创建了一个脚本来取消设置单个会话变量,但是会话的页面统计信息这是我的页面代码:
<?php
session_start();
require_once("../header.php");
if($_SESSION['user']) {
unset($_SESSION['user']);
echo "you succesfully logged out.";
header("Refresh:5; url=http://www.webmasteroutlet.com");
} else {
echo "you are already NOT LOGGED IN right now.";
}
require_once("../footer.php");
?>
这是此页面上的整个代码。它总是打印出“你现在还没有登录。”在login.php页面中将$_SESSION['user']
指定为true,并且在session_start();
打开后立即在页面的开头设置<?php
。
会话变量在所有其他具有php扩展名的文件中被识别,这是它唯一没有处理的单个文件。我也试过
<?php
session_start();
echo $_SESSION['user'];
?>
并且它不会打印任何内容。它只是跳过那条线而什么都不做。我究竟做错了什么 ? 非常感谢您的帮助。 这是header.php代码
<?php
session_start();
require("config.php"); // that only contains connection to the database and it is successful.
if(isset($_SESSION['user'])==1){
echo "<div id=\"topnav\" class=\"topnav\"><a href=\"#\" class=\"signup\"><span>".$_SESSION['username']."</span></a> <a href=\"http://www.webmasteroutlet.com/users/logout.php\" class=\"signup\"><span>LOGOUT</span></a></div>";
}
else if ($_SESSION['admin']) {
echo "<div id=\"topnav\" class=\"topnav\">"."<a href=\"#\" class=\"signup\"><span>".$_SESSION['adminusername']."</span></a> ";
echo "<a href=\"http://www.webmasteroutlet.com/admin/adminlogout.php\" class=\"signup\"><span>LOGOUT</span></a></div>";
}
else if ( !isset($_SESSION['user'])) {
require ($_SERVER['DOCUMENT_ROOT']."/users/login.php");
}
require("search.php");
?>
答案 0 :(得分:0)
试试这个:
<?php
session_start();
require_once("../header.php");
if(isset($_SESSION['user'])) {
echo "User.".$_SESSION['user']." you are being logged out";
unset($_SESSION['user']);
header("Refresh:5; url=http://www.webmasteroutlet.com");
} else {
echo "You are not logged or var SESSION doesnt exist";
}
require_once("../footer.php");
?>
如果仍然无效,请尝试删除require_once行(用于调试)。
答案 1 :(得分:0)
我认为您需要设置if并确保将会话数据传递到此页面,这看起来就像您未设置此
答案 2 :(得分:0)
贾斯汀,我认为你没有设置$_SESSION['user']
。这就是你在vardump时获得NULL的原因。
另一种可能性,虽然我仅限于您提供的脚本,但您可以让一个人通过$_SESSION['admin']
以及$_SESSION['user']
进行登录。如果是这种情况,您必须将脚本更改为:
if(isset($_SESSION['user'])) {
unset($_SESSION['user']);
echo "user succesfully logged out.";
}elseif(isset($_SESSION['admin'])){
unset($_SESSION['admin']);
echo "admin succesfully logged out.";
}else{
echo "you are already NOT LOGGED IN right now.";
}