尝试用会话做一些简单的事情。
我刚刚开始扩展我的网站,所以开始使用每个页面上包含的功能文件。
我正在尝试使一个页面只有在您登录时才可访问,如果不是,它会重定向您,然后设置会话。检测到此会话并显示“登录”消息。
我之前有过这段代码,但由于我搞乱了事情,因此无法正常工作。
因此,在需要检查登录用户的页面上,这位于页面顶部:
<?php
session_start();
require 'functions/core-functions.php';
isUserLoggedIn_referLogin();
?>
这是功能:
// User Logged In Check For Protected Pages - Promt Login
function isUserLoggedIn_referLogin() {
if(!isset($_SESSION['user'])) {
$_SESSION['needlogin'] = "1";
header('location: ' .$_SERVER['HTTP_REFERER']);
}
}
这用于显示erorr:
if (isset($_SESSION['needlogin'])) {
echo '
<div class="invalidlogin">Please login to use this feature.</div>';
unset($_SESSION['needlogin']);
}
我已检查过firebug,但显示没有设置会话。
有什么想法吗?
答案 0 :(得分:0)
您需要调用session_write_close
答案 1 :(得分:0)
如果Gavin的回答无法解决您的问题,请确保在将任何内容发送到浏览器之前调用session_start()
。除了http://php.net/manual/en/function.session-start.php
要使用基于cookie的会话,必须先调用session_start() 向浏览器输出任何内容。