2010-12-05 3 views
0

나는 cPanel/Whm/CentOS 5.5와 함께 vps를 가지고 있고 문제는 내 서버로 보내지는 모든 매개 변수가 addslashed인데, 나는 PHP 설정을 체크 아웃했다. 그리고 나는 모든 마술 따옴표가 꺼져 있다는 것을 알았다. 그리고 나는이 원인을 모릅니다.

내 코드가 너무 깨끗하고 모든 비트를 알고 있으며 어떤 기능이든 addslashes()이 아닙니다. 나는 단지 매개 변수를 그대로 받고 싶습니다.

URL: test.php?text=blah" ' " 'blah 

<?php 
echo $_GET["text"]; // Output blah\" \' \" \'blah 
?> 

이 기능을 끄려면 어떻게해야합니까?

감사

답변

3

php.ini의 변수는 magic_quotes_gpc입니다 (이 기능을 끄는 첫 번째 항목입니다). 당신은 정말로 당신이 올바른 파일을보고 있는지 확인해야합니다.

.htaccess 또는 런타임에 해제 할 수도 있습니다. 그러나 호스트가 이러한 작업을 수행하도록하지 않으면 현재 설정과 상관없이 다음과 같은 기능을 사용할 수 있습니다.

if(get_magic_quotes_gpc()) { 

    $_POST  = array_map('stripslashes_deep', $_POST); 
    $_GET  = array_map('stripslashes_deep', $_GET); 
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE); 
    $_REQUEST = array_map('stripslashes_deep', $_REQUEST); 
} 

function stripslashes_deep($value) { 

    return (is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value)); 
} 
+0

감사하지만, 나는 이미 마술 따옴표를 꺼 놓았습니다. – Ryan

+0

올바른 파일을보고 있는지 확인해야합니다. phpinfo()를 사용하여 사용 된 php.ini의 위치를 ​​포함하여 현재 설정을 모두 출력하십시오. 아마도 php.ini에서 설정이 해제되었지만 런타임에는 설정되었을 것입니다. 이것은 phpinfo() 출력에서도 볼 수 있습니다. var_dump (get_magic_quotes_gpc())를 사용하여 magic_quotes 설정의 현재 값을 얻을 수도 있습니다. – ontrack

+0

감사합니다. 전에, 나는 whm에서 php 설정 섹션을 체크 아웃했다. 그리고 나는 magic quotes gpc를 편집하기 위해 클릭했다. 그리고 나는 그것이 이미 꺼져 있음을 발견했다. 그러나 그렇지 않다. 다시 저장해야만했다. – Ryan

1

그것은 "magic quotes"라는 (사용되지 않음) 보안 기능 그리고 그것을 끌 수 있습니다.