急急急,求助htmlspecialchars函数的问题

twwlcn 2015-06-19 06:19:17

我写的程序.有会员注册功能
我在录入时
`Useremail` = '".dowith_sql(htmlspecialchars($_POST["Useremail"]))."',
用了htmlspecialchars函数过滤用户添加的文字
防止添加代码.

但是很奇怪啊. 比如添写项有
账号
密码
姓名
那么我在5.3.3中 姓名不填写 一样可以注册成功
为什么在5.2中 只要用到htmlspecialchars函数的地方 就必须填 写呢?不能为空?
如果使用htmlspecialchars函数的地方为空 就无法插入数据了..愁死

我上网搜了一下.据说5.4以上 也是这种情况??????怎么解决呢?
我用的是UTF-8
求解
...全文
156 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2015-06-20
  • 打赏
  • 举报
回复
输出一下:htmlspecialchars($_POST["Useremail"]); 看看每个php的有什么不同。 另外,用这个方法过滤特殊字符太危险了。应该使用addslashes
twwlcn 2015-06-20
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
既然你有多个 php 版本环境,那你就在每个环境中都 echo htmlspecialchars($_POST["Useremail"]); 对比一下结果就是了
我只是想向上兼容,5.2肯定不是主流了.现在用5.3正常.就怕就5.4以上有问题啊 所以请教各位大大. 是不是要弃用这个函数或是有什么可以代替.还是说5.4以上不会产生这类问题可以放心使用呢?
xuzuning 2015-06-20
  • 打赏
  • 举报
回复
既然你有多个 php 版本环境,那你就在每个环境中都 echo htmlspecialchars($_POST["Useremail"]); 对比一下结果就是了
xuzuning 2015-06-20
  • 打赏
  • 举报
回复
htmlspecialchars 只在需要显示 html 源码时使用 如果你把他当做防火墙使用用话,那么只能后果自负

21,886

社区成员

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

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