Php 为什么没有设置此会话?

Php 为什么没有设置此会话?,php,function,session,Php,Function,Session,只是试着用会话做一些简单的事情 我刚开始扩展我的网站,所以我开始使用每个页面上都包含的功能文件 我正在试图使一个页面只有在你登录时才可访问,否则它会重定向你,然后设置一个会话。检测到此会话并显示“登录”消息 我以前使用过这段代码,但由于我把事情搞砸了,所以不起作用 因此,在需要检查已登录用户的页面上,此项位于页面顶部: <?php session_start(); require 'functions/core-functions.php'; isUserLoggedIn_referLo

只是试着用会话做一些简单的事情

我刚开始扩展我的网站,所以我开始使用每个页面上都包含的功能文件

我正在试图使一个页面只有在你登录时才可访问,否则它会重定向你,然后设置一个会话。检测到此会话并显示“登录”消息

我以前使用过这段代码,但由于我把事情搞砸了,所以不起作用

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

<?php 
session_start();
require 'functions/core-functions.php';
isUserLoggedIn_referLogin();
?>
这用于显示erorr:

if (isset($_SESSION['needlogin'])) {
    echo '
    <div class="invalidlogin">Please login to use this feature.</div>';
    unset($_SESSION['needlogin']);
}
if(isset($\u会话['needlogin'])){
回声'
请登录以使用此功能。“;
取消设置($_会话['needlogin']);
}
我已经检查了firebug,但它显示没有设置会话


有什么想法吗?

你需要调用session\u write\u close

如果Gavin的答案不能解决你的问题,请确保在将任何内容发送到浏览器之前调用
session\u start()
。这里有一个例外

要使用基于cookie的会话,必须在 将任何内容输出到浏览器


这就是所使用的全部代码吗?您的
会话的启动位置可能有问题。\u start()
。我试图添加的所有代码都会影响此功能。您能否扩展会话开始()的问题所在?在调用
session\u start()
之前,您是否向浏览器输出了任何内容?不,它始终位于最顶端:/n然后您需要提供生成这些页面所用的所有代码,因为这是解决问题的最简单方法。
if (isset($_SESSION['needlogin'])) {
    echo '
    <div class="invalidlogin">Please login to use this feature.</div>';
    unset($_SESSION['needlogin']);
}