background image

本函数使需要让数据库处理的字符串中引号的部份加上斜线,以供数据

 

库查询 (query) 

 

能顺利运作。这些会被改的字符包括单引号 (')

 

、双引号 (")、反

 

斜线 backslash () 

 

以及空字符 NUL (the null byte)。

1,表单提交中 addslashes 的表现。

首先要看 get_magic_quotes_gpc()

 

的值,一般为 1 。这时候从 

<TEXTAREA> 提交的内容会自动加上斜线。

 

比如输入 ' 

 

变成 ' , " 

 

变成 " , 变成

<html><head><title>test</title></head>

<body>
<FORM action="" method=post>
<TEXTAREA name=message rows="18" cols="55" >default 
text</TEXTAREA>
<INPUT type=submit value=Submit name=submit></FORM>
<?php 
echo get_magic_quotes_gpc().
" A ".$_POST['message'].
" B ".stripslashes($_POST['message']);
?>
</body></html>

输入:include('/home/me/myfile'); 

输出:1 A include('/home/me/myfile'); B include('/home/me/myfile');

总结:get_magic_quotes_gpc()等于 1 的情况下,如果不输入数据库,

那你得到的结果是加了斜线的。

2,提交输入数据库时 addslashes 的表现。

<html><head><title>test</title></head>

<body>
<FORM action="" method=post>
<TEXTAREA name=message rows="18" cols="55" >default 
text</TEXTAREA>
<INPUT type=submit value=Submit name=submit></FORM>
<?php
require_once('includes/common.php');
$db->query("INSERT INTO `testtable` ( id , content ) VALUES ('1' , '".
$_POST['message']."')");
$query=$db->query("select * from `testtable` where `id`= 1;");
$Result=$db->fetch_array($query);
echo get_magic_quotes_gpc().
" A ".$_POST['message'].
" B ".$Result['content'];