关于什么时候使用addslashes

stan23 2004-01-20 11:02:52
一般表单提交的数据写入MYSQL之前我都使用addslashes,但是刚在本机装的一个服务器(APACHE/PHP/MYSQL),提交表单后,系统自动加上"\"。
比如输入的内容是:
test'it'
正常情况下使用addslashes后应该变成:
test\'it\'
可在这个服务器中却变成:
test\\\'it\\\'

为了是程序具有可移植性,需要判断所在的服务器是否自动添加"\",然后决定使不使用addslashes,可是如何判断呢?
...全文
60 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahaheda 2010-06-25
  • 打赏
  • 举报
回复
用这个函数去掉转义字符stripcslashes()可去掉还原字符
windnets 2004-01-22
  • 打赏
  • 举报
回复
function do_addslashes($str) {
if(get_magic_quotes_gpc())
return $str;
else
return addslashes($str);
}

也许这个自定义函数能对你有点帮助?

在大多数服务器中,php.ini默认 magic_quotes_gpc = On,所以一般来说不用addslashes都可以写入MYSQL了;但为谨慎起见,你可以用这样的自定义函数来处理一下你的字符(串)。
hope1983 2004-01-21
  • 打赏
  • 举报
回复
对啊,用正则.在读或写数据时判断
<?php

$aaa="888"; //获取变量;

if (eregi("[\]",$aaa)) {
echo "有\,,不用addslashes()";
}
else
{
echo "没有\,,之后用addslashes()";
}
?>
phanx 2004-01-21
  • 打赏
  • 举报
回复
服务器上面的 magic_quotes 应该是打开了的。 在php.ini里面关掉就是了。
101monster 2004-01-21
  • 打赏
  • 举报
回复
呵呵!UP!
surfchen 2004-01-20
  • 打赏
  • 举报
回复
读取数据的时候用正则判断一下,把\去掉
ustb 2004-01-20
  • 打赏
  • 举报
回复
用这个函数get_magic_quotes_gpc()试试
stan23 2004-01-20
  • 打赏
  • 举报
回复
关键是实现不知道服务器是否自动加上"\"
surfchen 2004-01-20
  • 打赏
  • 举报
回复
读取数据的时候把\去掉不就行了?
stan23 2004-01-20
  • 打赏
  • 举报
回复
如果那么简单我就不来这里问了
surfchen 2004-01-20
  • 打赏
  • 举报
回复
可以用判断语句判断一下的嘛~~
用几个IF就行了

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧