5

在我当前的项目中,我有一个 security.php ,其中包含一些函数和一些 ini_set() 语句。

ini_set('session.use_trans_sid', 0);
ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_secure', 1);
ini_set('session.hash_function', 'whirlpool');
ini_set('session.cookie_httponly', 1);
ini_set('session.hash_bits_per_character', '5');

所以这是我的问题。如果我进行某种检查...

if(ini_set('session.use_trans_sid', 0) === false)
    echo "Foo!";

无论我尝试设置哪一个,它总是返回 false。我以为问题出在 security.php 权限上,但我错了。

编辑

var_dump(ini_set('display_errors', '0')); 

返回字符串(0)“”

还有什么想法吗?

谢谢,塞巴斯蒂安

4

1 回答 1

-2

ini_set总是返回一个字符串,所以这个严格的比较总是错误的:

ini_set('session.use_trans_sid', 0) === false

如果要检查值而不更改它,请使用ini_get

if (ini_get('session.use_trans_sid') == 0) ...

或者

if (!ini_get('session.use_trans_sid')) ...

ini_set将设置值返回先前的值。

于 2016-04-15T19:09:25.817 回答