2013-08-29 36 views
0

我正在开发一个需要使用会话的网站。然而,会话寿命的默认值是1440秒或24分钟。我试图用ini_set()来改变这个,确保把ini_set()放在session_start()之前,然后用ini_get()检查它。 ini_get()返回我设置的值,但会话似乎仍遵循默认规则集。主机是否可以锁定php ini设置?

那么主机是否可以锁定编辑ini设置?

+0

哪个网络服务器? – wallyk

+0

我相信我在apache上使用linux。 – user2126881

+0

是的。主持人可以强制他们想要的任何设置,或者如果他们愿意,可以禁止您进行更改。特别是在外部文件如会话的地方,他们可以做自己的垃圾收集。 –

回答

0

简答:可能。

这可能是因为他们已经通过disable_functions指令在全局php.ini中禁止使用ini_set,但这并不能解释您所看到的行为;该文档尚不明确,但如果您调用禁用的函数,我希望它会引发错误,也不能解释为什么ini_get返回您之前设置的内容。他们也完全可能运行他们自己的补丁版本的PHP来改变这种行为。不是闻所未闻,但不太可能。

事情尝试:

  • session_set_cookie_params,而不是设置它(必须是前session_start),你设置正确参数(session.cookie_lifetime
  • 双重检查和您的ini_set之前肯定放置session_start,或者在其他地方没有其他session_start
+0

是的,我已经完成了这两个。那么他们必须禁用它们。使用会话进行用户登录时,有点烦人。我有一个与他们聊天tommrow关于它:) – user2126881

-1

唤醒器是肯定的。

该php代理有3个作用域。

1系统

这一个影响所有的应用程序。它是global.ini文件。他们可以 也禁用覆盖。

2 Perdir

这是你的php.ini文件。它只影响你的目录。在这里可以 您禁用脚本范围覆盖项,并允许

3时脚本

这是ini_set范围使该 系统范围覆盖。允许

所以有可能是一台主机锁定的INI设置编辑时,它可以覆盖perdir &系统 范围是什么?

是的,他们可以禁用覆盖系统范围内。

+1

真的吗?你有资源吗?从[文档说](http://uk3.php.net/manual/en/configuration.changes.php),它在我看来像这些被烘烤到PHP中,不能修改PHP本身。所以,如果一个属性被'PHP_INI_ALL'标记为可更改的,我不会看到如何通过PHP_INI_SYSTEM改变它。 – BenLanc

相关问题