이 기사에서는 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
I 이 기사가 PHP 프로그래밍에 도움이 되는 모든 사람에게 도움이 되기를 바랍니다.
위 내용은 관련 측면을 포함하여 PHP에서 addcslashes 및 Stripcslashes 함수의 사용 분석을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.