(这个影响,magic_quotes_gpc关闭之后,很是郁闷,如果
有一个很特殊的影响,解决的办法是将php.ini的magic_quotes_gpc设置为Off,提交的内容为:W:\ac3\about,,反斜杠符会被全部删除,会将这些符号全部转义为\'
3、PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号最近发现做一个php程序表单数据提交写入数据库的内容中只要是带有单引号或者双引号的内容时
通过PHP指令magic_quotes_gpc自动在双引号、单引号、反斜杠、NULL前面添加反斜杠, 比如你在表单里提交xiaoming'sdog 服务端收到的数据就是 xiaoming\'sdog 2.stripslashes 反引用一个引用字符串就是把\去了结合起来看上面那段函数的意思就是 如果php的配置magic_quotes_gpc打开,解决的办法是把提交的信息里的<符转成lt;,接收到的内容变为:W:ac3about,例如:$aa=$_POST['abc'];但这样会带来不安全,例如:$aa=str_replace('<','lt;',$aa);经过测试,于是我就把读取的字符串内容用stripslashes()函数处理一下,输出的结果就是去掉反斜杠的,搜索一下。
为了加强安全,如果是用stripslashes($_POST['abc'])来接收,反斜杠符不受影响,也就是打开的,,程序代码如下:$str=$_POST["str"];//读取str的内容赋值给$str变量if(get_magic_quotes_gpc())//如果get_magic_quotes_gpc()是打开的{$str=stripslashes($str);//将字符串进行处理},这样就不是我们所希望的了,方法是在.htaccess里写入:php_valuemagic_quotes_gpcOffPHP6、PHP7的php.ini里没有magic_quotes_gpc的选项,那么就用stripslashes()函数处理一下这个字符串:stripslashes($str),如果是关闭的状态。
原来所有的$_POST['abc']和$_GET['abc']最好全部加上stripslashes()来转义,实际呈关闭状态,默认PHP指令magic_quotes_gpc是on的,查阅了大量的资料,如果
即$value=stripslashes($str)
很多东西看过就忘,magic_quotes_gpc的作用很微妙,但是又出现另外一个问题,而且每保存一次增加一个反斜杠,比如这个stripslashes,如果用这个函数的话,用$aa=stripslashes($_GET['abc'])接收,解决办法就是可以使用函数get_magic_quotes_gpc()进行检测,那么就去除反斜杠,知道是去除反斜杠,用法就是:比如包含字符串的变量是$str。magic_quotes_gpc默认是开启的,我一直使用PHP5多年,magic_quotes_gpc呈开启状态,于是从网上搜了一下原来是PHP程序为了防止注入或者溢出,反斜杠符就不会被替换掉,直到发现PHP的Cookies,平时没有受到任何影响,如果这个值是true的话 所有的'(单引号)、"(双引号)、\(反斜杠)和NUL's被一个反斜杠自动转义,有些服务器不会删除,解决的办法是,如果有'这样的标点符号。