//表单提交如果你不进行 html 标签处理那么就会直接显示样式或者 js 代码直接运行
/*
<form>
<input type='text' name='title'>
<input type='submit' name='submit' value='提交'>
</form>
当你输入
<H1>www.jb51.net<H1>
一提交就出现是一号大字体
但是你原来是想要
<H1>www.jb51.net<H1>结果的
所以要处理下
当输入
<script>alert('www.jb51.net')</script>
一提交就会运行
javascript
这样不好
必须处理下来防止黑客找到你攻击的入口
表单默认提交方式是
get
*/
//当你输入<div><h1>www.jb51.net</h1></div>
echo
htmlspecialchars(
$_GET
['title']);
//过滤了
结果
:<div><h1>php.yl1001.com</h1></div>
其他查看源码就知道
< 和 >已经被替换了成< >就会在页面原型显示
还有一点要主要
如果不处理<div >有的复制的文章自身有标签样式就会打乱你的页面布局
可能
css 冲突
htmllentities()函数用户和 htmlspecialchars()相反用法就不说了
当你需要那个标签留着可以用到
strip_tags
()函数
echo
strip_tags
(
$_GET
['title'],'<b><p><strong><h1>');
提交结果是你查看源码
就会发现<div>没有了
/*
加入输入
i love 'jb51';
提交结果为
i love \'jb51\'反斜杠转义了
那么我要想原文输出怎么办呢
可以用这个
php 函数 stripslashes()
取消转义
echo stripslashes($_GET['title']);
结果是
i love 'jb51';
如果含有
html 标签呢如这种
<a href="">i love 'jb51'</a>
我要原型输出怎么办
可以用 2 个函数结合起来用 我已经说过的
echo htmlspecialchars(stripslashes($_GET['title']));
结果:
<a href="">i love 'jb51'</a>
*/