2013-03-07 1 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 권한과 관련 있다고 생각했지만 잘못되었습니다.

편집

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

반환 문자열 (0) ""

다른 생각?

감사합니다, 세바스찬

+0

if 문에서 쉼표와 0을 제거하십시오. 거기에 값을 할당했습니다. – Shridhar

+0

'ini_get'을 사용해야합니까? – j08691

+1

@Sebastian, 재미있는 질문. ini_set이 다른 ini 값과 함께 작동하는지 확인할 수 있습니까? 예를 들면 다음과 같습니다 : var_dump (ini_set ('display_errors', '0'));'? – hek2mgl

답변

0

ini_set는 항상 문자열을 반환하므로이 엄격한 비교는 항상 false가 될 것입니다 :

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.ini-set.php#refsect1-function .ini-set-returnvalues). –