我正在开发一个需要使用会话的网站。但是,会话寿命的默认值是1440秒或24分钟。我已经尝试使用ini_set()
来改变这一点,确保将ini_set()
放在session_start()
之前,然后用ini_get()
进行检查。ini_get()
返回我设置的值,但会话似乎仍然遵循默认规则集。
那么,主机有可能锁定ini设置的编辑吗?
简短回答:可能。
可能是他们通过全局php.ini中的disable_functions
指令禁用了ini_set
的使用,但这并不能解释您所看到的行为;文档并不清楚,但如果您调用了一个禁用的函数,我希望它会抛出一个错误,也没有解释为什么ini_get
会返回您之前设置的内容。他们也完全有可能运行自己的修补版本的PHP来改变这种行为。并非闻所未闻,但可能性不大。
尝试的东西:
- 改为使用session_set_cookie_params设置(需要在
session_start
之前) - 仔细检查您是否设置了正确的参数(
session.cookie_lifetime
),并且您的ini_set是否确实位于session_start之前,或者您在其他地方没有其他session_start
awser是yes。
php代理有3个作用域。
1系统
此操作会影响所有应用程序。它是global.ini文件。他们可以同时禁用覆盖。
2 Perdir
这是您的php.ini文件。它只影响您的目录。这里可以禁用脚本作用域的覆盖,并在允许时的系统范围
3脚本
这是
ini_set
范围。它可以覆盖perdir&系统允许时的范围
那么主机有可能锁定ini设置的编辑吗
是的,他们可以在系统范围内禁用覆盖。