Example code:
Copy code The code is as follows:
@set_magic_quotes_runtime(0);
$MQG = get_magic_quotes_gpc() ;
if(!$MQG && $_POST) $_POST = daddslashes($_POST);
if(!$MQG && $_GET) $_GET = daddslashes($_GET);
//Translation character function
function daddslashes($string) {
if(!is_array($string)) return addslashes($string);
foreach($string as $key => $ val) $string[$key] = daddslashes($val);
return $string;
}
PHP provides two magic reference functions that facilitate us to reference data. magic_quotes_gpc and magic_quotes_runtime, if these two functions are set to ON in php.ini, they will automatically add backslashes when the data we quote encounters single quotes ' and double quotes " and backslashes, helping us automatically Translate symbols to ensure the correct operation of data operations. However, under different versions of PHP or different server configurations, some magic_quotes_gpc and magic_quotes_runtime are set to on, and some are set to off, so the program we write must comply with both on and off. So what is the difference between magic_quotes_gpc and magic_quotes_runtime? See the following description:
The difference between magic_quotes_gpc and magic_quotes_runtime functions magic_quotes_gpc
The scope is : web client
server;
Action time: when the request starts, such as when the script is running
magic_quotes_runtime
Scope: data read from the file or. Obtained from SQL query;
Action time: Every time the script accesses the data generated in the running state,
So the setting value of magic_quotes_gpc will affect the data obtained through Get/Post/Cookies magic_quotes_runtime. The setting value will affect the data read from the file or the data obtained from the database query
Example:
Copy code The code is as follows:
$data1 = $_POST['aaa'];
$data2 = implode(file('1.txt'));
if(get_magic_quotes_gpc ()){
//Write data $data1 directly into the database (automatic translation)
}else{
$data1 = addslashes($data1);
//Write data $data1 Database, use function (addslashes() translation)
}
if(get_magic_quotes_runtime()){
//Write the data $data2 directly into the database (automatic translation)
//From The data read from the database needs to be output after stripslashes() once. The function of stripslashes() is to remove: , which is opposite to addslashes()
}else{
$data2 = addslashes($data2);
/ /Write data $data2 into the database
//Output the data read from the database directly
}
The most critical difference is the 2 points mentioned above: They target different processing objects
The setting value of magic_quotes_gpc will affect the data obtained through Get/Post/Cookies
The setting value of magic_quotes_runtime will affect the data read from the file or obtained from the database query Data
I would like to mention a few functions that I want to associate here: set_magic_quotes_runtime():
Set the magic_quotes_runtime value. 0=off. 1=on. The default state is Closed.
get_magic_quotes_gpc():
View magic_quotes_gpc value.0=off.1=on
get_magic_quotes_runtime():
View magic_quotes_runtime value. 0=off. 1=on.
Note that there is no set_magic_quotes_gpc() function, that is, the value of magic_quotes_gpc cannot be set in the program.
http://www.bkjia.com/PHPjc/326190.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326190.htmlTechArticleExample code: Copy the code as follows: @set_magic_quotes_runtime(0); $MQG = get_magic_quotes_gpc(); if(! $MQG $_POST) $_POST = daddslashes($_POST); if(!$MQG $_GET) $_GET = daddsl...