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