2012-06-19 3 views
0

나는 HTML 문서를보다 easly 만들 수있는 앱을 만들고자한다.PHP PHP가 HTML fopen fwrite를 이스케이프하지 못하도록하는 방법

대부분은 파일에 쓸 때 백 슬래시를 추가한다는 점만 제외하면 작동합니다.

<a href=\"google.com\">google</a> 

이 작업을 중단하는 방법을 알려주세요.

나는 그것을 작동시켰다! 파일에 쓰기 전에 stripslashes()를 사용하면 파일을 저장/생성합니다. \ 감사합니다.

+0

fwrite 전화로 코드를 게시 할 수 있습니까? – NaturalBornCamper

+1

fwrite ($ fp, stripslashes ($ whatever)); – Dale

+0

"stripslashes"기능이있는 것과없는 백 슬래시를 추가합니까? $ 문자열을 에코하여 그 안에 결함이 있는지 살펴 보았습니까? – NaturalBornCamper

답변

1

작은 따옴표로 묶은 문자열을 사용하는 경우 문자 그대로 해석되므로 이스케이프 큰 따옴표는 백 슬래시와 함께 사용하면 안됩니다. docs에서

:

참고 : 작은 따옴표로 둘러싸인 문자열에서 발생할 때 특수 문자 인용 더블과 히어 닥 문법, 변수는 달리 탈출 시퀀스가 ​​확장되지 않습니다. 마법은 당신이 때마다, 당신은 php.ini 파일에서 또는 같은 htaccess로 파일 중 하나를 해제해야 위해서 stripslashes를 사용하지 않으려면이 켜져 인용하기 때문에

2

아마입니다 :

magic_quotes_gpc = Off 
magic_quotes_runtime = Off 
magic_quotes_sybase = Off 

또는 파일 htaccess로 의 :

파일 php.ini의 에서

php_flag magic_quotes_gpc Off 

또는 코드에서 직접 사용하지 :

if (get_magic_quotes_gpc()) { 
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); 
    while (list($key, $val) = each($process)) { 
     foreach ($val as $k => $v) { 
      unset($process[$key][$k]); 
      if (is_array($v)) { 
       $process[$key][stripslashes($k)] = $v; 
       $process[] = &$process[$key][stripslashes($k)]; 
      } else { 
       $process[$key][stripslashes($k)] = stripslashes($v); 
      } 
     } 
    } 
    unset($process); 
} 

소스 : 그것은 어떤 기본에서 기본적으로이기 때문에이 문제는 PHP의 사용되지 Magic Quotes 지시에 의해 발생 http://php.net/manual/en/security.magicquotes.disabling.php

+0

php.ini 파일 (공유 서버) 그리고 아무 것도 htaccess 파일에 가지 마라. – user1330492

+0

.htaccess 파일을 추가 할 방법이 없을까 ?? PHP 스크립트가있는 htaccess 파일도 만들 수 없습니까? 나는 그것이 불가능하다는 이유를 알지 못하지만, 그렇다면 당신은 내가 추측 할 때마다 스트라이크를 추가해야 할 것입니다. – NaturalBornCamper

+0

/나를 아무도 찾고 있는지 확인하는 두 가지 방법 | 나는 정말로 htaccess 파일을 이해하지 못한다. php_flag magic_quotes_gpc 명령을 추가했다. 그러나 그것의 끝 부분을 제외하고는 아무 것도하지 않았다. (이해할 수없는 것들을 엉망으로 만들고 싶지 않다.) 나는 404를 설정하기 위해 그것을 사용한다. 이것에 관해서는 – user1330492

1

는, 당신은 여전히 ​​활성화 5.4 이전에 PHP를 설치하십시오. 길이 인수를 지정하지 않으면 fwritemagic-quotes-runtime을보고 탈출 여부를 확인합니다.

당신이 .htaccess 파일에

php_flag magic_quotes_gpc Off 

를 배치 할 수있는 기능을 해제하려면이 옵션

또는 당신이 할 수있는 disable it in php.ini

당신이 경우 수 있도록 아파치 DSO를 사용해야합니다 공유 호스트에 있거나 다른 이유로 코드의 문제를 해결했기 때문에 이러한 작업을 수행 할 수 없습니다.

function write($resource,$string,$length) 
    if (get_magic_quotes_gpc()) { 
     $string = stripslashes($string); 

    } 
    return fwrite($resource, $string,$length); 
} 
0

비슷한 문제가 있지만 $ _POST [ 'body'] 변수가 있습니다. 이 작품은 나를 위해 :

str_replace("\\", "", $_POST['body']); 
+0

이 질문에 대한 대답은 이유를 설명하십시오. 당신의 대답은 질문에있는 것과는 다른 (그러나 관련이 있을지도 모르는) 문제를 다루는 것처럼 보입니다. – ptd

관련 문제