PHP处理表单提交特殊字符的方法有很多种,比如htmlspecialchars、addslashes、stripslashes、strip_tags、mysql_real_escape_string等等。
请看下面过滤表单特殊字符实例:
<html>
<body>
<?php
if ($_POST[\'submitted\'] == \"yes\"){
$yourname = $_POST[\'yourname\'];
$yourname = trim ($yourname);
$yourname = strip_tags ($yourname);
$yourname = htmlspecialchars ($yourname);
$yourname = addslashes ($yourname);
echo $yourname . \"<br />\";
?><a href=\"index.php\">Try Again</a><?php
}
if ($_POST[\'submitted\'] != \"yes\"){
?>
<form action=\"index.php\" method=\"post\">
<p>Example:</p>
<input type=\"hidden\" name=\"submitted\" value=\"yes\" />
Your Name: <input type=\"text\" name=\"yourname\" maxlength=\"150\" /><br />
<input type=\"submit\" value=\"Submit\" style=\"margin-top: 10px;\" />
</form>
<?php
}
?>
</div>
</body>
</html>
一般我是这样使用的:
kindedit编辑器:从post来的进行addslashes后就可存入数据库了,取出后直接echo即可
普通的文本:
- htmlspecialchars接着addslashes存入数据库,取出后直接echo即可。
- addslashes存入数据库,取出后htmlspecialchars输出。
说明:
- addslashes仅仅是为了让原来的字符正确地进入数据库。
- htmlspecialchars是吧html标签转化掉。
额外:
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误
在magic_quotes_gpc=On的情况下,如果输入的数据有
单引号(’)、双引号(”)、反斜线()与 NUL(NULL 字符)等字符都会被加上反斜线。这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义。
正是因为这个选项必须为On,但是又让用户进行配置的矛盾,在PHP6中删除了这个选项,一切的编程都需要在magic_quotes_gpc=Off下进行了。在这样的环境下如果不对用户的数据进行转义,后果不仅仅是程序错误而已了。同样的会引起数据库被注入攻击的危险。所以从现在开始大家都不要再依赖这个设置为On了,以免有一天你的服务器需要更新到PHP6而导致你的程序不能正常工作。
继续阅读与本文标签相同的文章
上一篇 :
你好哇,机器人
下一篇 :
自动驾驶汽车的寿命只有 4 年?
-
新款iphone11已经发布有些日子,这款手机好不好用呢?用数据告诉你
2026-05-14栏目: 教程
-
超进化,时尚玩主的全新一代名爵ZS,起步只要7.98万
2026-05-14栏目: 教程
-
微信 7.0.8 内测新功能,教你如何激活它
2026-05-14栏目: 教程
-
美女机器人刚上市就售罄,除了生孩子,其他什么都能干!
2026-05-14栏目: 教程
-
互联网之光大会的黑科技,总有一款惊艳你!
2026-05-14栏目: 教程
