PHP中不采用会话持续时间设置
我的目的是,在页面上静止20分钟或关闭所有选项卡后,不要丢失会话。我希望会议继续按照我的要求进行 我如何继续:PHP中不采用会话持续时间设置,php,session,cookies,Php,Session,Cookies,我的目的是,在页面上静止20分钟或关闭所有选项卡后,不要丢失会话。我希望会议继续按照我的要求进行 我如何继续: 创建了一个文件“sessionSettings.php”,我在其中设置了持续时间,请参见下面的代码 在会话_start()之前,将其包含在需要的每个文件中 但它不知何故无法适应,会话像往常一样被删除 提前谢谢 sessionSettings.php <?php // server should keep session data for AT LEAST 1 week ini
- 创建了一个文件“sessionSettings.php”,我在其中设置了持续时间,请参见下面的代码
- 在会话_start()之前,将其包含在需要的每个文件中李>
<?php
// server should keep session data for AT LEAST 1 week
ini_set('session.gc_maxlifetime', 604800);
// each client should remember their session id for EXACTLY 1 week
session_set_cookie_params(604800);
你在地图上看到这张便条了吗?注意:如果不同的脚本具有不同的session.gc_maxlifest值,但共享存储会话数据的相同位置,则具有最小值的脚本将清除数据。在这种情况下,将此指令与session.save_path一起使用。@Nick:我明白了。由于我无法控制php.ini,因此我通过一个文件更改设置。我的问题是:我是否需要将sessionSettings文件包含在任何页面中,或者只是在我调用session_start()函数的地方?实际上,您可以直接向session_start
提供这些选项,例如session_start(['save_path'=>'some path'])
但是,如果不是这样,它应该只在调用session\u start
的页面中需要,我不知道从何而来。PHP会话只使用一个默认为PHPSESSID
名称的cookie(尽管您可以使用session\u name()
更改它),并且您已经拥有了该cookie。但是可能有一些代码正在运行另一个并行会话,session.name
设置为SERVERID123
?如果它来自PHP,您应该能够在会话文件存储目录中找到一个名为sess\uuu
的文件和cookie的值。恐怕在这种情况下我已经没有主意了。如果没有对服务器的完全访问权,则很难进行调试。很抱歉