【问题标题】:Why Session is not working on server, is there any server side setting for it?为什么 Session 在服务器上不起作用,是否有任何服务器端设置?
【发布时间】:2020-03-02 07:16:37
【问题描述】:

为什么 Session 在服务器上不起作用,是否有任何服务器端设置会话变量。

根据上面的截图,我首先执行 abc.php,然后执行 abcd.php。 当 abc.php 正在执行时,它返回给我 Array ( [admin] => 1 ),而我再次执行 abcd.php 它只返回空白数组 Array ( )

它在本地主机上运行完美,但在服务器上却没有,所以我需要为我做任何服务器端设置。

提前致谢。

【问题讨论】:

  • 检查标头,确保服务器设置了 cookie,并且客户端会发送下一个请求。
  • 感谢@zerkms 的回复,要我设置cookie吗?
  • 不,session_start 应该为你设置一个 cookie。
  • 谷歌了解如何在您的浏览器中进行操作。如果是 google chrome,请检查开发工具中的 NetworkApplication 选项卡。
  • 请提供有关服务器环境的详细信息。有时php会话目录可能没有写入会话文件的权限。你可以在linux服务器上通过php -i | grep session.save_path查看

标签: session server php


【解决方案1】:

请检查服务器上的 phpinfo() 并检查session.save_path

并确保此路径和文件夹具有可写权限。

就我而言 - 没有 'tmp' 文件夹。我已经创建并解决了问题

【讨论】:

    【解决方案2】:

    检查是否是会话路径问题。 您可以按照以下说明设置新的会话路径。

    默认情况下,PHP 将会话数据存储在文件中,文件存储在 服务器的 /tmp 目录。每个会话都存储在自己的 文件。 echo session_save_path();

    session_save_path 函数返回当前会话保存路径。如果 session_save_path() 函数返回 null,则 session.save_path 为 在你的 php.ini 文件中注释。

    您可以取消注释 session.save_path session.save_path = "C:\WINDOWS\Temp"

    要更改存储会话的默认路径,您可以使用相同的 函数 session_save_path( ) 但参数是路径 新目录

    session_save_path("/var/www/html/project/sess_save/");

    如果你正在开发像 CodeIgniter 这样的框架。在 config.php 中定义会话路径总是更好

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2021-11-28
      • 2015-10-10
      相关资源
      最近更新 更多