>백엔드 개발 >PHP 튜토리얼 >PHP의 get_magic_quotes_gpc() 함수에 대한 자세한 설명

PHP의 get_magic_quotes_gpc() 함수에 대한 자세한 설명

墨辰丷
墨辰丷원래의
2018-05-26 10:16:454718검색

get_magic_quotes_gpc 함수는 사용자가 제공한 데이터에 슬래시를 추가할지 여부를 결정하는 데 사용됩니다. 이는 php.ini 구성 파일에 있습니다. 이 기사에서는 get_magic_quotes_gpc() 함수 설명을 소개합니다. 아래 에디터로 살펴보겠습니다

get_magic_quotes_gpc 함수는 사용자가 제공한 데이터에 슬래시를 추가할지 여부를 결정하는 데 사용됩니다. 이는 php.ini 구성 파일에 있습니다. get_magic_quotes_gpc() 함수 설명을 소개하겠습니다.

get_magic_quotes_gpc 함수 소개

PHP 시스템 함수인 PHP 환경변수 Magic_quotes_gpc의 값을 가져옵니다.

구문: ​​long get_magic_quotes_gpc(void);

반환 값: 긴 정수

이 함수는 PHP 환경 구성에서 Magic_quotes_gpc(GPC, Get/Post/Cookie) 변수의 값을 가져옵니다. 0을 반환하면 이 기능이 꺼지고, 1을 반환하면 이 기능이 켜집니다.

magic_quotes_gpc가 켜져 있으면 모든 '(작은따옴표), "(큰따옴표), (백슬래시) 및 null 문자는 자동으로 백슬래시가 포함된 오버플로 문자로 변환됩니다.

Magic_quotes_gpc 설정은 자동으로 GPC로 설정됩니다. get, post, cookie에 의해 전달된 데이터에서)는 백슬래시와 함께 추가됩니다. get_magic_quotes_gpc()를 사용하여 시스템 설정을 감지할 수 있습니다.

이 설정이 켜져 있지 않으면 addlashes() 함수를 사용하여 데이터베이스 쿼리 문에서 필요할 때 특정 문자 앞에 백슬래시를 추가할 수 있습니다.

이러한 문자는 작은따옴표('), 큰따옴표("), 백슬래시() 및 NUL(NULL 문자)입니다.

기본적으로 PHP 명령인 Magic_quotes_gpc가 켜져 있으며 이는 주로 모든 GET 및 POST 및 COOKIE 데이터에 사용됩니다. addlashes()를 자동으로 실행합니다.

magic_quotes_gpc에 의해 이스케이프된 문자열에는 addlashes()를 사용하지 마세요. 이렇게 하면 get_magic_quotes_gpc() 함수를 사용하여 이 상황을 감지할 수 있습니다.

데이터베이스 공격을 방지하기 위해 get_magic_quotes_gpc()를 사용하는 올바른 방법코드는 다음과 같습니다

<?php
function check_input($value)
{
// 去除斜杠
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// 如果不是数字则加引号
if (!is_numeric($value))
{
$value = “‘” . mysql_real_escape_string($value) . “‘”;
}
return $value;
}
$con = mysql_connect(“localhost”, “hello”, “321″);
if (!$con)
{
die(‘Could not connect: ‘ . mysql_error());
}
// 进行安全的 SQL
$user = check_input($_POST[&#39;user&#39;]);
$pwd = check_input($_POST[&#39;pwd&#39;]);
$sql = “SELECT * FROM users WHERE
user=$user AND password=$pwd”;
mysql_query($sql);
mysql_close($con);
?>

요약은 다음과 같습니다.

1. Magic_quot의 경우 es_gpc= 에 ,

데이터베이스에서 입력 및 출력되는 문자열 데이터에 대해 addslashes() 및 Stripslashes()를 수행할 필요가 없으며, 입력에 addlashes()를 수행하면 데이터가 정상적으로 표시됩니다.

그런 다음 출력 시 불필요한 백슬래시를 제거하기 위해 Stripslashes()를 사용해야 합니다.

2 Magic_quotes_gpc=off인 경우

addlashes()를 사용하여 입력 데이터를 처리해야 하지만 Stripslashes(.) 형식의 출력을 사용할 필요가 없습니다

addlashes()는 데이터베이스에 백슬래시를 기록하지 않기 때문에 mysql이 SQL 문의 실행을 완료하는 데 도움이 됩니다

위 내용은 이 기사의 전체 내용입니다. 모든 분들의 학습에 도움이 되길 바랍니다.

관련 추천:

php get_magic_
quotes

_gpc() 함수 사용 지침

php 자동 탈출 문제와 관련하여, Magic_의 역사적 문제 quote_gpc 구성

PHP get_magic_quotes_gpc() 함수 사용법 소개


위 내용은 PHP의 get_magic_quotes_gpc() 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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