특정 상황에서 PHP 웹 페이지에 양식 데이터를 제출하면 모든 큰따옴표 앞에는 백슬래시를 사용하세요. 이 문제는 마술 따옴표로 알려진 서버 구성 기능으로 인해 발생합니다.
마법 따옴표가 활성화되면 PHP는 큰 따옴표를 포함한 특정 문자가 데이터베이스로 전송되거나 데이터베이스 또는 양식 제출에서 수신될 때 자동으로 이스케이프합니다. 이는 악의적인 인용문을 이스케이프 처리하여 SQL 주입 공격을 방지할 수 있지만 일반 형식 처리를 방해할 수도 있습니다.
문제 해결
문제를 해결하려면 다음을 사용할 수 있습니다. 양식 데이터를 데이터베이스에 저장하거나 페이지에 표시하기 전에 자동으로 추가된 백슬래시를 제거하는 Stripslashes() 함수. 예는 다음과 같습니다.
<code class="php">if (get_magic_quotes_gpc()) { $input = stripslashes($input); }</code>
이 조건문은 매직 따옴표가 활성화되어 있는지 확인하고, 활성화된 경우 스트립슬래시()를 사용하여 $input 변수에서 백슬래시를 제거합니다. 이렇게 하면 추가 수정 없이 양식 데이터를 정상적으로 처리할 수 있습니다.
마법의 따옴표 설명
마법의 따옴표는 더 이상 사용되지 않는 기능이며 최신 PHP에서는 안전하지 않은 것으로 간주되어야 합니다. 개발. 이는 PHP 4에 도입되었으며 다양한 보안 및 코드 호환성 문제가 발생하여 PHP 7.0.0에서 제거되었습니다.
더 투명하고 안전한 코딩 관행을 허용하므로 일반적으로 매직 따옴표를 비활성화하는 것이 좋습니다. PHP 구성 파일을 수정하고 Magic_quotes_gpc를 Off로 설정하여 매직 따옴표를 비활성화할 수 있습니다.
마법 따옴표의 기능을 이해하고 스트립슬래시()를 사용하여 이 "모든 따옴표 앞의 슬래시" 문제를 해결하면 효과적으로 처리할 수 있습니다. PHP로 데이터를 형성하고 매직 따옴표가 활성화된 경우에도 의도한 기능을 보장합니다.
위 내용은 PHP에서 \'모든 인용문 앞에 슬래시\' 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!