马上注册,自学更多教程,下载更多资源。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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() 进行检测,如果是打开的状态,那么就去除反斜杠,如果是关闭的状态,则不去除反斜杠。

程序代码如下:

  1. $str=$_POST["str"];//读取str的内容赋值给$str变量
  2. if(get_magic_quotes_gpc())//如果get_magic_quotes_gpc()是打开的
  3. {$str=stripslashes($str);//将字符串进行处理
  4. }
复制代码

下面介绍三种方法解决这个问题:

方法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文件中增加下面一句:

  1. php_flag magic_quotes_gpc Off
复制代码

方法3: 在代码中屏蔽

该方法是移植性最强的,不用考虑服务器的配置,只要支持PHP就可以使用。

在所有PHP文件开始处增加下面代码

  1. if(get_magic_quotes_gpc()){
  2.    function stripslashes_deep($value){
  3.      $value=is_array($value)?array_map('stripslashes_deep',$value):stripslashes($value);
  4.      return $value;
  5.    }
  6.    $_POST=array_map('stripslashes_deep',$_POST);
  7.    $_GET=array_map('stripslashes_deep',$_GET);
  8.    $_COOKIE=array_map('stripslashes_deep',$_COOKIE);
  9.    $_REQUEST=array_map('stripslashes_deep',$_REQUEST);
  10. }
复制代码





上一篇:PHP给源代码加密的三种方法汇总(站长推荐)
下一篇:php小头采集程序设计演示教程带源码

云码酷 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与云码酷享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和云码酷的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、云码酷管理员和版主有权不事先通知发贴者而删除本文

回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    0

    主题

    206

    帖子

    206

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    206
    发表于 2020-1-8 16:17:00 来自手机 | 显示全部楼层
    沙发
    支持支持再支持
    回复 支持 反对

    使用道具 举报

    0

    主题

    188

    帖子

    188

    积分

    注册会员

    Rank: 2

    积分
    188
    发表于 2020-1-8 16:18:18 来自手机 | 显示全部楼层
    板凳
    占坑编辑ing
    回复 支持 反对

    使用道具 举报

    1

    主题

    180

    帖子

    181

    积分

    注册会员

    Rank: 2

    积分
    181
    发表于 2020-1-8 16:24:18 来自手机 | 显示全部楼层
    地板
    顶起顶起顶起
    回复 支持 反对

    使用道具 举报

    3

    主题

    196

    帖子

    199

    积分

    注册会员

    Rank: 2

    积分
    199
    发表于 2020-1-8 16:25:23 来自手机 | 显示全部楼层
    5#
    鼎力支持!!
    回复 支持 反对

    使用道具 举报

    1

    主题

    169

    帖子

    170

    积分

    注册会员

    Rank: 2

    积分
    170
    发表于 2020-1-8 16:29:31 来自手机 | 显示全部楼层
    6#
    纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
    回复 支持 反对

    使用道具 举报

    0

    主题

    208

    帖子

    208

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    208
    发表于 2020-1-8 16:34:52 | 显示全部楼层
    7#
    支持云码酷
    回复 支持 反对

    使用道具 举报

    0

    主题

    155

    帖子

    155

    积分

    注册会员

    Rank: 2

    积分
    155
    发表于 2020-1-8 16:49:39 来自手机 | 显示全部楼层
    8#
    1v1飘过
    回复 支持 反对

    使用道具 举报

    0

    主题

    192

    帖子

    192

    积分

    注册会员

    Rank: 2

    积分
    192
    发表于 2020-1-8 16:57:21 | 显示全部楼层
    9#
    回个帖子,下班咯~
    回复 支持 反对

    使用道具 举报

    0

    主题

    176

    帖子

    176

    积分

    注册会员

    Rank: 2

    积分
    176
    发表于 2020-1-8 16:58:56 来自手机 | 显示全部楼层
    10#
    不错 支持下
    回复 支持 反对

    使用道具 举报

    12下一页
    • 售后服务
    • 关注我们
    • 社区新手

    申请友链|Archiver|手机版|小黑屋|云码酷 ( 京ICP备13037810号 )

    Powered by Discuz! X3.2  © 2001-2022 云码酷