>  기사  >  백엔드 개발  >  PHP_php 기술에서 addcslashes 및 Stripcslashes 함수의 사용 분석

PHP_php 기술에서 addcslashes 및 Stripcslashes 함수의 사용 분석

WBOY
WBOY원래의
2016-05-16 20:00:291227검색

이 기사에서는 PHP의 addcslashes 및 Stripcslashes 함수 사용법을 예제와 함께 분석합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

영문사이트 작성시 영문정보는 작성이 끝난 후 아무렇게나 입력할 땐 전혀 문제가 없었는데, 특정 내용을 입력할 때마다 안되더라구요. 입력하지 않았는데 오류가 보고되지 않았습니다. 데이터베이스를 확인해보니 이 필드가 "TEXT" 데이터 유형을 사용하는 것으로 나타났습니다. 그래서 내용이 너무 길기 때문에 데이터 유형을 "longtext"로 변경했습니다. , 그런데 제출해보니 같은 문제가 계속 발생하는 것을 발견했습니다. addcslashes 기능을 소개합니다!

나중에 동료들에게 조언을 구한 결과, 영어에서 구두점 "'"이 붙은 이유는 MySQL이 여기서 명령문을 실행한 후 자동으로 종료된 것으로 간주하므로 추가할 수 없다는 것을 알게 되었습니다. 이제 문제를 찾았으므로 해당 솔루션을 찾아야 합니다. 즉, 텍스트 내용의 모든 "'" 앞에 이스케이프 문자 ""를 추가하는 것입니다. PHP는 자동으로 이스케이프를 추가하거나 제거하는 기능을 제공합니다. 문자 함수는 addcslashes 및 Stripcslashes이므로 테스트를 추가한 후 문제가 해결되었습니다. 평일에 프로그램을 작성할 때 충분히 엄격하지 않으며 해커가 이러한 세부 사항을 발견하면 항상 무시한다는 것을 알 수 있습니다. 문제를 일으키고 악용하면 웹사이트는 기본적으로 끝났으니 다들 경고로 받아들이고 저와 같은 실수를 하지 마세요.

다음은 이 두 기능의 사용법을 간략하게 소개합니다.

string addcslashes(string str,string charlist)

첫 번째 매개변수 str은 분실된 객체의 원래 문자열입니다

두 번째 매개변수 charlist는 원래 문자열에서 앞에 문자 ""가 와야 하는 문자를 지정합니다.

문자열 스트립cslashes(문자열 str)

문자열에서 ""를 제거합니다.

또한 addlashes 기능을 사용하여 "'"를 직접 이스케이프할 수 있습니다.

예는 다음과 같습니다.

<&#63;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);
&#63;>

실행 결과는 다음과 같습니다.

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 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.