0

只是想用会话做一些简单的事情。

我刚开始扩展我的网站,所以开始使用每个页面上包含的函数文件。

我正在尝试使页面仅在您登录时才可访问,如果没有,它会重定向您然后设置会话。检测到此会话并显示“登录”消息。

我以前有这个代码工作过,但是因为我把事情搞砸了,所以没有工作。

因此,在需要检查登录用户的页面上,它位于页面顶部:

<?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']);
}

}

这用于显示错误:

if (isset($_SESSION['needlogin'])) {
    echo '
    <div class="invalidlogin">Please login to use this feature.</div>';
    unset($_SESSION['needlogin']);
}

我检查了萤火虫,但它显示没有设置会话。

有任何想法吗?

4

2 回答 2

0

你需要调用 session_write_close

于 2013-11-03T21:53:18.907 回答
0

如果 Gavin 的回答不能解决您的问题,请确保session_start()在将任何内容发送到浏览器之前调用。这是http://php.net/manual/en/function.session-start.php的一个例外

要使用基于 cookie 的会话,必须在向浏览器输出任何内容之前调用 session_start()。

于 2013-11-03T21:56:42.677 回答