2013-03-07 3 views
3

В моем текущем проекте у меня есть security.php, который содержит некоторые функции и некоторые операторы ini_set().ini_set() всегда возвращает false

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, но я ошибся.

EDIT

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

возвращает строку (0) ""

Любая другая идея?

Спасибо, Себастьян

+0

Удалить запятую и 0 из инструкции if. Вы назначили значение там – Shridhar

+0

Разве вы не используете 'ini_get'? – j08691

+1

@Sebastian, интересующий вопрос. Вы можете проверить, работает ли ini_set с другими значениями ini? ... например: 'var_dump (ini_set ('display_errors', '0'));'? – hek2mgl

ответ

0

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 установит значение и возвращает предыдущее значение.

+2

'ini_set' возвращает false, когда есть сбой, в документации (http://php.net/manual/en/function.in-set.php#refsect1-function .ini-Set-returnvalues). –

Смежные вопросы