이 글은 주로 PHP에서 addcslashes와 Stripcslashes 함수의 사용법을 소개하고, addcslashes 함수를 예제 형태로 분석하여 고정 문자에 대한 이스케이프 처리와 Stripcslashes로 복원 작업을 추가하는 방법이 필요한 친구들은 참고하면 됩니다.
이 글은 PHP에서 addcslashes 및 Stripcslashes 함수의 사용 예를 분석합니다. 참고하실 수 있도록 자세한 사항은 다음과 같습니다.
영문 홈페이지 작성 시, 영문 정보는 작성이 끝난 후 가볍게 작성하시면 문제가 되지 않습니다. 그런데 지정된 내용을 입력할 때마다 입력이 안 되고 오류도 보고되지 않았습니다. 데이터베이스를 확인한 결과 이 필드에 "TEXT" 데이터 유형이 사용된 것으로 나타났습니다. 길어서 데이터 유형을 "longtext"로 변경했는데 제출했는데도 여전히 같은 문제가 발생하는 것을 발견했습니다. addcslashes 함수를 소개하겠습니다!
나중에 동료들에게 도움을 요청했는데 그 이유가 영어의 구두점 "'" 때문이라는 것을 알게 되었습니다. 여기에서 MySQL이 실행된 후에는 자동으로 명령문이 종료된 것으로 간주합니다. 추가할 수 없습니다. 이제 문제를 찾았으므로 해당 솔루션을 찾아야 합니다. 즉, 텍스트 내용의 모든 "'" 앞에 이스케이프 문자 ""를 추가하는 것입니다. PHP는 자동으로 이스케이프를 추가하거나 제거하는 기능을 제공합니다. 문자 함수는 addcslashes 및 Stripcslashes이므로 테스트를 추가한 후 문제가 해결되었습니다. 평일에 프로그램을 작성할 때 충분히 엄격하지 않으며 해커가 이러한 세부 사항을 발견하면 항상 무시한다는 것을 알 수 있습니다. 문제를 일으키고 악용하면 웹사이트는 기본적으로 끝났으니 다들 경고로 받아들이고 저와 같은 실수를 하지 마세요.
다음은 이 두 함수의 사용법에 대한 간략한 소개입니다:
string addcslashes(string str, string charlist)
첫 번째 매개 변수 str은 손실된 개체의 원래 문자열입니다.
두 번째 매개 변수 charlist는 다음을 나타냅니다. 문자 ""가 앞에 오는 문자는 원래 문자열에 있어야 합니다.
string Stripcslashes(string str)
문자열에서 ""를 제거합니다.
또한 addlashes 기능을 사용하여 "'"를 직접 이스케이프할 수 있습니다.
예제는 다음과 같습니다.
<?php $sql = "update book set bookname='let's go' where bookid=1"; echo $sql."<br/>"; $new_sql = addcslashes($sql,"'"); echo $new_sql."<br/>"; $new_sql_01 = stripcslashes($new_sql); echo $new_sql_01."<br/>"; echo addslashes($sql); ?>
실행 결과는 다음과 같습니다.
update book set bookname='let's go' where bookid=1 update book set bookname=\'let\'s go\' where bookid=1 update book set bookname='let's go' where bookid=1 update book set bookname=\'let\'s go\' where bookid=1
위 내용은 모두의 학습에 도움이 되기를 바랍니다. . 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 주목하세요!
관련 추천:
출력 및 선택 출력을 지우기 위해 PHP에서 ob_start()를 사용하는 방법
위 내용은 PHP의 addcslashes 및 Stripcslashes 기능 분석 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!