我正在尝试使用.htaccess中的php_value
命令更改一些php session parameters,因为我使用的是共享服务器而无法直接访问php.ini。
但是,托管服务器似乎不允许.htaccess中的php_value
命令,并且他们说他们的php设置无法更改/覆盖。
我的问题:是否有解决方法或我是否必须更改托管服务器?
答案 0 :(得分:1)
您可以使用ini_set()
函数更改php文件顶部的php.ini设置:http://php.net/manual/en/function.ini-set.php但是您的提供程序可能已设置为不允许您设置要设置的参数
在用户访问的每个文件的顶部包含以下内容:
ini_set('session.cookie_secure', 1); // If you are using https
ini_set('session.cookie_httponly', 1);
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
您应该在与会话有关之前执行此操作。可能值得将其移动到包含在所有页面顶部的.inc文件中,如果您没有这样的文件,则可以将它们移动到。
您可以通过检查其返回值来测试提供商是否允许ini_set
更改,可能使用以下包装:
function set_ini($name, $value) {
if (!ini_set($name, $value) {
throw new RuntimeException('ini_set failed for '.$name);
}
}
(感谢@hanshenrik关于检查返回值的提示)