我可以在没有php.ini和.htaccess的情况下更改php会话参数吗?

时间:2016-10-06 08:26:25

标签: php .htaccess session

我正在尝试使用.htaccess中的php_value命令更改一些php session parameters,因为我使用的是共享服务器而无法直接访问php.ini。

但是,托管服务器似乎不允许.htaccess中的php_value命令,并且他们说他们的php设置无法更改/覆盖。

我的问题:是否有解决方法或我是否必须更改托管服务器?

1 个答案:

答案 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关于检查返回值的提示)