我是会话初学者。我正在尝试构建一个身份验证系统,如果用户可以成功登录,则会为用户提供会话,并且该会话用于识别当前用户的身份。因此,如果登录成功:
$_SESSION['id'] = $username;
我还将session_start()放在header.php文件中,该文件包含在用户浏览的每个页面中。但是,在分配会话后,当我尝试检查它时,
isset($_SESSION['id'])
每次都返回false。为了维持会话,我还有什么需要做的吗? 谢谢,对不起,这是一个noobie问题。
答案 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']++;
}
?>