会话无法在所有页面中生存

时间:2013-02-11 02:25:39

标签: php session

我是会话初学者。我正在尝试构建一个身份验证系统,如果用户可以成功登录,则会为用户提供会话,并且该会话用于识别当前用户的身份。因此,如果登录成功:

$_SESSION['id'] = $username;

我还将session_start()放在header.php文件中,该文件包含在用户浏览的每个页面中。但是,在分配会话后,当我尝试检查它时,

isset($_SESSION['id'])

每次都返回false。为了维持会话,我还有什么需要做的吗? 谢谢,对不起,这是一个noobie问题。

1 个答案:

答案 0 :(得分:1)

请务必致电所有网页顶部的session_start()

See the manual for basic usage

  

会话是一种为个人用户存储数据的简单方法   唯一会话ID。这可用于保存状态信息   页面请求之间。会话ID通常发送到浏览器   通过会话cookie,ID用于检索现有会话   数据。缺少ID或会话cookie让PHP知道创建一个   新会话,并生成新的会话ID。

     

会话遵循简单的工作流程。会话启动时,PHP会   使用传递的ID检索现有会话(通常来自   一个会话cookie)或如果没有传递会话,它将创建一个新的   会话。 PHP将使用任何会话填充$ _SESSION超全局   会话开始后的数据。当PHP关闭时,它会   自动获取$ _SESSION超全局的内容,   序列化它,并使用会话保存处理程序将其发送以进行存储。

     

默认情况下,PHP使用由设置的内部文件保存处理程序   session.save_handler。这样可以节省服务器上的会话数据   session.save_path配置指令指定的位置。

     

可以使用session_start()函数手动启动会话。   如果session.auto_start指令设置为1,则会话将   在请求启动时自动启动。

     

当PHP完成时,会话通常会自动关闭   执行脚本,但可以使用。手动关闭   session_write_close()函数。

     

示例#1使用$ _SESSION注册变量。

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>