2013-11-03 49 views
0

只是想用会话做点简单的事情。为什么这个会话没有被设置?

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

我正在尝试使一个页面只有accesable如果你登录,如果没有它重定向你,然后设置会话。此会话被检测到并显示“登录”消息。

我以前有过这样的代码,但是由于我弄乱了东西而没有工作。

所以需要对登录的用户进行检查的页面上,这是对在页面的顶部:

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

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

任何想法?

+0

这是所有使用的代码?你可能会在开始session_start()的时候遇到问题。 – SamV

+0

它的所有影响这个功能的代码,我试图添加。你可以扩展session_start()的问题在哪里? – Lovelock

+0

你在调用'session_start()'之前是否向浏览器输出了任何内容? – SamV

回答

0

你需要session_write_close

0

调用如果加文的答案不能解决你的问题之前,请确保任何发送到浏览器session_start()被调用。这里有一个除外http://php.net/manual/en/function.session-start.php

要使用基于Cookie的会话,在session_start()必须 前outputing什么浏览器调用。

相关问题