PHP에서 $_POST 변수에 이스케이프가 발생하는 이유
질문:
왜 $ AJAX POST 요청에서 데이터를 수신할 때 PHP 스크립트에서 _POST 변수가 이스케이프됩니까? 이 문제는 Linux에서 PHP 5.2.12를 실행하는 프로덕션 서버에서 발생하지만 Windows에서 PHP 5.3.1을 실행하는 로컬 서버에서는 발생하지 않습니다.
답변:
마법의 인용문 , 특히 magic_quotes_gpc는 Linux 서버에서 활성화되었을 가능성이 높습니다.
설명:
마법 따옴표는 자동으로 특정 문자(작은 따옴표 및 큰 따옴표, POST 요청을 포함하여 외부 소스에서 수신된 데이터에는 백슬래시 및 null 바이트)가 포함됩니다. 이러한 따옴표가 켜져 있으면 POST 변수가 참조되는 방식에 영향을 미치므로 비활성화해야 합니다.
가능한 해결 방법:
<code class="php">if (get_magic_quotes_gpc()) { $my_post_var = stripslashes($_POST["my_post_var"]); }</code>
참고: 이 솔루션은 모든 POST 데이터에서 슬래시를 제거하므로 슬래시를 기반으로 선택적으로 사용합니다. 귀하의 요구 사항에 맞게.
위 내용은 내 $_POST 변수가 프로덕션 서버에서는 이스케이프되지만 로컬 서버에서는 이스케이프되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!