백엔드 개발 PHP 튜토리얼 ThinkPHP를 Database_php 예제로 가져올 때 두 개의 백슬래시 이스케이프 및 데이터베이스 클래스 이스케이프 문제에 대한 솔루션

ThinkPHP를 Database_php 예제로 가져올 때 두 개의 백슬래시 이스케이프 및 데이터베이스 클래스 이스케이프 문제에 대한 솔루션

May 16, 2016 pm 08:32 PM
thinkphp 두 배 해결책 탈출하다

이 기사의 예에서는 ThinkPHP를 데이터베이스로 가져올 때 두 개의 백슬래시 이스케이프와 데이터베이스 클래스 이스케이프에 대한 솔루션을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.

이것은 Magic_quotes_gpc가 켜져 있을 때 발생합니다. 그 이유는 thinkphp가 데이터베이스로 가져올 때 Magic_quotes_gpc가 켜져 있는지 여부를 확인하지 않았고 관계없이 이스케이프했기 때문입니다.
해결 방법은 항목 파일에 다음 코드를 추가하는 것입니다.

코드 복사 코드는 다음과 같습니다.
if (!get_magic_quotes_gpc()) {
함수 addlashes_deep($value) {
         $value = is_array($value)
              array_map('addslashes_deep', $value):
addlashes($value)
          $value 반환;                                }  
$_POST = array_map('addslashes_deep', $_POST)
$_GET = array_map('addslashes_deep', $_GET)
$_COOKIE = array_map('addslashes_deep', $_COOKIE)
$_REQUEST = array_map('addslashes_deep', $_REQUEST)
}
누군가 DbMysql.class.php의 이스케이프 기능을 다음과 같이 수정했습니다.

코드 복사 코드는 다음과 같습니다.
public function escape_string($str) {
if (get_magic_quotes_gpc()) {
$str 반환
}
if($this->_linkID) {
return mysql_real_escape_string($str,$this->_linkID);
}그밖에{
return mysql_escape_string($str)
}
}
사실 이 방법은 바람직하지 않습니다! 매직 기능이 켜져 있고 $str이 post 또는 get(예: 텍스트 또는 데이터베이스 읽기)으로 획득되지 않은 경우에도 여전히 백슬래시를 추가하지 않기 때문입니다.

따라서 $str이 이스케이프되었는지 여부에 관계없이 항상 이스케이프를 먼저 제거한 다음 이스케이프를 추가합니다. 이렇게 하면 이중 이스케이프 및 누락된 이스케이프가 방지됩니다.
수정한 방법은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
public function escape_string($str) {
$str = 스트립슬래시($str)
if($this->_linkID) {
return mysql_real_escape_string($str,$this->_linkID)
}그밖에{
return mysql_escape_string($str)
}
}
이 글이 모든 분들의 ThinkPHP 프레임워크 프로그래밍에 도움이 되기를 바랍니다.

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Gitee Pages 정적 웹 사이트 배포 실패 : 단일 파일 문제를 해결하고 해결하는 방법 404 오류? Gitee Pages 정적 웹 사이트 배포 실패 : 단일 파일 문제를 해결하고 해결하는 방법 404 오류? Apr 04, 2025 pm 11:54 PM

GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...

스트림에서 작동 할 때 RXJ 코드가 ​​적용되지 않는 이유는 무엇입니까? 스트림에서 작동 할 때 RXJ 코드가 ​​적용되지 않는 이유는 무엇입니까? Apr 04, 2025 pm 06:27 PM

RXJ를 사용하여 스트림에서 작동 할 때 코드가 적용되지 않는 이유는 무엇입니까? 학습 RXJS ...

PNPM 및 Monorepo 프로젝트에서 로컬 패키지 버전을 지정하는 방법은 무엇입니까? PNPM 및 Monorepo 프로젝트에서 로컬 패키지 버전을 지정하는 방법은 무엇입니까? Apr 04, 2025 pm 04:06 PM

PNPM 및 Monorepo 프로젝트에서 로컬 패키지 버전을 지정하는 방법 PNPM 및 Monorepo를 사용하여 프로젝트를 관리 할 때 프로젝트 간 지역을 공유 해야하는 경우가 종종 있습니다.

XPath를 사용하여 JavaScript의 지정된 DOM 노드에서 검색하는 방법은 무엇입니까? XPath를 사용하여 JavaScript의 지정된 DOM 노드에서 검색하는 방법은 무엇입니까? Apr 04, 2025 pm 11:15 PM

JavaScript의 DOM 노드에서 XPath 검색 방법에 대한 자세한 설명은 종종 XPath 표현식을 기반으로 DOM 트리에서 특정 노드를 찾아야합니다. 필요하다면 ...

opencv.js 프로젝션 변환의 결과가 빈 투명한 그림이라는 문제를 해결하는 방법은 무엇입니까? opencv.js 프로젝션 변환의 결과가 빈 투명한 그림이라는 문제를 해결하는 방법은 무엇입니까? Apr 04, 2025 pm 03:45 PM

OpenCV.JS 프로젝션 변환의 결과로 투명한 이미지 문제를 해결하는 방법은 비어 있습니다. 이미지 처리에 opencv.js를 사용하는 경우 때로는 투영 변환 후 이미지가 발생합니다 ...

sftp.json 구성 후에 다운로드 할 수없는 서버 파일의 이유와 솔루션은 무엇입니까? sftp.json 구성 후에 다운로드 할 수없는 서버 파일의 이유와 솔루션은 무엇입니까? Apr 04, 2025 pm 06:54 PM

솔루션 SFTP.JSON 구성 후에 서버 파일을 다운로드 할 수없는 문제에 대한 솔루션 sftp.json 파일을 구성한 후 사용자는 대상 서버 파일을 다운로드 할 수 없을 수 있습니다 ...

요소 플러스 테이블 구성 요소 Max-Height가 잘못 되었습니까? 테이블을 적응력이 높고 스크롤 바를 표시하는 방법은 무엇입니까? 요소 플러스 테이블 구성 요소 Max-Height가 잘못 되었습니까? 테이블을 적응력이 높고 스크롤 바를 표시하는 방법은 무엇입니까? Apr 04, 2025 pm 04:03 PM

ElementPlus 테이블 구성 요소의 최대 높이 속성 실패 및 솔루션은 요소를 사용하는 것입니다 ...

See all articles