PHP session_start 返回 false,$_SESSION 变量不持久

首先我要说的是,我对 PHP 还比较陌生,所以如果这看起来微不足道,我深表歉意。另外,如果类似的情况已经得到回答,我深表歉意,但我似乎无法通过浏览类似的问题找到任何对我有用的解决方案。

我正在尝试为我的网站设置一个登录页面,我的目标是使用 $_SESSION 变量来存储用户登录后的登录凭据。但是,我找不到一种方法来使 $_SESSION 变量持续存在到其他页面,甚至在网页刷新后停留。

应当指出的是:

每当我尝试调用 session_start() 时,它总是返回 false。我在 php 代码的开头调用它,前面没有任何空格。

每当我调用 session_status 时,它总是返回 1。无论在 php 代码中的何处调用它,都会发生这种情况。

每当我调用 session_id 时,它总是返回 null。同样,无论在 php 代码中的任何位置调用它,都会发生这种情况。

该代码正在 SiteGround 的网络托管服务上运行。我还没有在本地测试过它,因为我对 php 比较陌生,而且我对如何在本地托管 php 文件不太有信心。

我已经对此进行了测试;我的 Windows PC 使用 Chrome,我的 iPhone 使用 Safari。两者都有相同的问题。

任何帮助或建议将不胜感激,因为在过去的几天里,一些看似微不足道的事情一直让我发疯。


猛跑小猪
浏览 100回答 1
1回答

慕森王

找到了解决方案。即使 SiteGround(我的主机)已将 session.save_path 设置为 /tmp,我仍然必须使用此文件路径编写自定义 php.ini 文件。这已经解决了这个问题,并且一旦我将 php.ini 文件设置为显示错误和启动错误,就可以清楚地看出 session.save_path 是问题所在。
打开App,查看更多内容
随时随地看视频慕课网APP