2011-10-31 3 views
1

에 나는 PHP에 의해 처리 형태 만들기와 반복되는 문제가 있습니다. 항상 \로 이스케이프지고 문자 '"
이 데이터는 PHP에 도달하기도 전에 일어날 것으로 보인다, $_POST 배열입니다.
에 그래서 형태로 ' " \를 삽입 할 때, 그리고 PHP와에게나 솔직하게 그것을 멀리 인쇄?

+0

는 PHP가 이러한 이스케이프 처리해야한다. 당신은 그 잘못을 어디에서 실행하고 있습니까? –

+0

@ DanielA.White 기본적으로'$ _POST'의 값을'echo '할 때 내 페이지에 \를 인쇄합니다. –

답변

4

당신은 magic_quotes가 활성화되어 나는
는 어떤이의 원인이됩니다. \' \" \\을 얻고, 어떤 솔루션이있다 귀하의 서버에 있습니다.

var_dump(get_magic_quotes_gpc())으로 직접 확인하십시오. 1이 인쇄되면 사용 가능합니다.

Disable them 및 필요한 컨텍스트에서 벗어남을 처리하십시오.

+2

이것이 옳습니다. 매직 시세는 더 이상 사용되지 않을 것이고 더 많은 PHP 릴리즈 중 하나에서 제거 될 것이므로 매직 시세에 절대 의존하지 않는 것이 좋습니다. 또한 마술 따옴표는 종종 더 많은 문제를 일으킨다. –

+0

@ Hikaru-Shindo @alex 답변 해 주셔서 감사합니다. 나는 당신의 마음을 사로 잡을 지 모르지만 나는 그 순간에 실제로 그걸 사용하지 못하게 할 수는 없다. 서버 관리자와 함께 작업 할 때까지는 stripslashes()를 사용합니다. –

+0

[set_magic_quotes_runtime()] (http://www.php.net/manual/en/function.set-magic)을 사용할 수 있습니다. -quotes-runtime.php). –

2

php.ini를 확인하면 magic_quotes_gpc가 On으로 설정되어있는 것 같습니다. 그러면 자동 이스케이프 동작이 발생합니다. 이 동작을 사용하지 않으려면 Off로 설정하십시오.

1

stripslashes 함수를 호출하여 게시 출력에서 ​​슬래시를 제거 할 수 있습니다. 나는 당신의 문제가 (지금은 사용되지 않는) '마법 따옴표'또는 이와 유사한있을 수 있습니다 생각 :

http://php.net/manual/en/security.magicquotes.php

2
$_POST = array_map("stripslashes", $_POST);