Seb*_*jan 5 php security session ini-set
在我当前的项目中,我有一个 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');
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题。如果我进行某种检查...
if(ini_set('session.use_trans_sid', 0) === false)
echo "Foo!";
Run Code Online (Sandbox Code Playgroud)
无论我试图设置哪一个,它总是返回 false。我以为问题出在 security.php 权限上,但我错了。
编辑
var_dump(ini_set('display_errors', '0'));
Run Code Online (Sandbox Code Playgroud)
返回字符串(0)“”
还有其他想法吗?
谢谢,塞巴斯蒂安
Mat*_*t S -3
ini_set总是返回一个字符串,所以这个严格的比较总是错误的:
ini_set('session.use_trans_sid', 0) === false
Run Code Online (Sandbox Code Playgroud)
如果您想检查该值而不更改它,请使用ini_get:
if (ini_get('session.use_trans_sid') == 0) ...
Run Code Online (Sandbox Code Playgroud)
或者
if (!ini_get('session.use_trans_sid')) ...
Run Code Online (Sandbox Code Playgroud)
ini_set将设置该值并返回之前的值。