8

我在会话方面遇到了一些困难。

在我的本地 MAMP 测试服务器上,如果我这样做:

session_start(); 回声 session_id();

我得到了一个漂亮的会话 ID。

但是,如果我在我的网络服务器上做同样的事情,我能从 session_id 得到的只是'null'。测试 session_start( ) 的返回并使用会话一切正常,但 session_id( ) $SID 和 $PHPSESSID 都为空。

这是为了增加安全性而故意隐藏的吗?我希望能够允许 Flash 通过 PHP 调用对购物车进行更改,并使用浏览器反映购物车(存储在会话中)。

4

4 回答 4

9

确保 session_start() 的返回值为 TRUE。

确保在脚本向浏览器输出任何内容之前调用 session_start()。

检查 apache 是否具有会话路径的写入权限。我的是/tmp

于 2010-12-21T22:27:34.667 回答
1

我有一个类似的问题(session_id()返回"",我希望,这与你的问题有关)。我关闭了所有相应的选项卡并删除了所有相关的 cookie,然后重新打开了站点,现在session_id()返回了一个漂亮的哈希值。

于 2016-01-06T11:59:39.133 回答
0

也许是一个边缘情况,但对我来说,我通过测试它的返回值来解决它,session_start()结果表明它是假的。

问题原来是实际文件的编码。在会话开始之前,它发出了一些不可见的东西,尽管看起来那里什么都没有。

我通过将相关文件复制到纯文本编辑器(我使用https://www.editpad.org/),删除源文件,重新创建空文件,粘贴我通过editpad运行的代码并重新上传来解决它.

之后,一切都开始正常填充。

于 2020-06-03T09:48:09.993 回答
0

I had a similar issue on Windows and for me it was caused by the ini setting session.save_path having an invalid path defined.

于 2021-10-22T17:08:45.093 回答