马上注册,自学更多教程,下载更多资源。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
近来发明做一个php法式表单数据提交写进数据库的内乱容中只需是带有单引号大概单引号的内乱容时,前面城市增长一个反斜杠。并且每保留一次增长一个反斜杠,非常忧郁。
因而从网上搜了一下本来是PHP法式为了避免注进大概溢出,经由过程PHP 指令 magic_quotes_gpc主动正在单引号、单引号、反斜杠、NULL前里增加反斜杠。
默许PHP 指令 magic_quotes_gpc是on的,也便是翻开的。这时候候就能够用stripslashes() 函数删除主动增加的反斜杠。用法便是:好比包罗字符串的变量是$str,那末便用stripslashes() 函数处置一下那个字符串:stripslashes($str),输出的成果便是来失落反斜杠的。
因而我便把读与的字符串内乱容用stripslashes()函数处置一下,即$value=stripslashes($str),再保留。
可是又呈现别的一个成绩,那便是由于当地PHP 指令 magic_quotes_gpc是off的,假如用那个函数的话,便会把原来一般的反斜杠也来失落了。如许便没有是我们所期望的了。
处理法子便是可使用函数 get_magic_quotes_gpc() 停止检测,假如是翻开的形态,那末便来除反斜杠,假如是封闭的形态,则没有来除反斜杠。
法式代码以下: - $str=$_POST["str"];//读与str的内乱容赋值给$str变量
- if(get_magic_quotes_gpc())//假如get_magic_quotes_gpc()是翻开的
- {$str=stripslashes($str);//将字符串停止处置
- }
复造代码上面引见三种办法处理那个成绩:
办法1:修正PHP设置文件php.ini
这类办法只适于本人有权办理效劳器的状况下,假如用的假造空间,那便只能接纳后两条办法。
正在PHP设置文件php.ini中将magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase局部设为off。以下所示: magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off 办法2:操纵.htaccess文件
该办法只正在效劳器撑持htaccess的状况下,如今的效劳器普通城市撑持的
正在法式目次下.htaccess文件中增长上面一句: - php_flag magic_quotes_gpc Off
复造代码办法3: 正在代码中屏障
该办法是移植性最强的,不消思索效劳器的设置,只需撑持PHP就能够利用。
正在一切PHP文件开端处增长上面代码 - if(get_magic_quotes_gpc()){
- function stripslashes_deep($value){
- $value=is_array($value)?array_map('stripslashes_deep',$value):stripslashes($value);
- return $value;
- }
- $_POST=array_map('stripslashes_deep',$_POST);
- $_GET=array_map('stripslashes_deep',$_GET);
- $_COOKIE=array_map('stripslashes_deep',$_COOKIE);
- $_REQUEST=array_map('stripslashes_deep',$_REQUEST);
- }
复造代码
上一篇:PHP给源代码减稀的三种办法汇总(站少保举) 下一篇:php小头收罗法式设想演示教程带源码 |