1

我将使用 cookie 和会话来识别用户。因此,仅当用户选择“不要记住我”选项时才会使用会话。我在网站每个页面的顶部都包含了识别文件。用户的会话看起来像$_SESSION['user']

而不是我的问题:

我必须对认证文件进行session_start()说明吗?我问它是因为每次我使用此指令时都会创建新会话。

更新 http://pastebin.com/Nh3zj6mR用户识别脚本

4

2 回答 2

1

除非您执行session_start(),否则 PHP 的会话机制将不会激活。$_SESSION 将出现,您将能够读取/修改它,但它的值不会被持久化 - 例如......当脚本退出时内容将丢失。

如果您在每个使用会话数据的脚本中运行 session_start(),但没有显示会话数据,则可能是配置错误导致会话 cookie 丢失,并且 PHP 每次都在创建一个新会话。

于 2012-08-29T18:30:39.787 回答
1

是的,您必须将session_start()放置在每个php页面的顶部(在生成任何输出之前,之前必须没有发送任何标题)来告诉 php 接受/启动会话,期望您的php.ini已设置,会话自动启动.

我问它是因为每次我使用此指令时都会创建新会话。<<

这是一个提示,您的浏览器会忽略(禁止)会话 cookie

于 2012-08-29T18:33:13.323 回答