1. 通过 htmlspecialchars() 函数来避免XSS攻击。因为它把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号) 成为 &
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
所以在即使别人在输入框内加了其他代码,也不会被执行,因为预定义字符被转换成了HTML实体,
<script>js代码</script>会变成 <scrip>js代码</scrip> 浏览器是看不懂的。
2.HTTP GET
3.显示错误信息与预定义错误信息
单看$nameerr变量,一来预定义为空,只有当点击submit提交表单后,才会进行第一个if语句。
若表单中名为name的input元素内未填东西,则会给$nameerr赋值即“名字是必须的”。
为了让错误信息显示出来以提醒用户名字还没输,用<span>标签。<?php echo $nameerr; ?>会一直显示$nameerr。若正确输入,则$nameerr值为空,相当于没显示。
4.正则表达式
(1)字符类中的[] 如[ABCDE]表示匹配ABCDE中的任意一个字符。[a-n]表示匹配a n以及之间的任意一个字符。
如果要匹配连字符- 则必须写在第一位 [-abc] 匹配- a b c 四者中任一个。^写在第一位表示否定后面的字符
如[^abc]表示匹配除了a与b与c以外的任一个字符,如ajkcsb 将成功匹配三次,即j k s
(2)abc+表示待匹配的文本中abc这个字符串必须出现至少一次,而不是c必须出现至少一次
(3)\ba\d*a\b 分析:匹配一个字符串 以a开头,中间有任意个(因为*)数字(\d),以a结尾。如a456189a就满足条件
(4){x,m}表示至少匹配x次,最多匹配m次;{x}表示必须匹配x次:{x,}表示至少匹配x次
(5)^ 表示一行的开始,$表示一行的结束。\b表示一个单词的开始于结束
(6)/pattern/ 斜杠的作用——正则表达式是包含在 两个斜杠之间 的一个或多个字符???
5.<input type="text" name="name" value="<?php echo $name;?>"> value处加入php代码,是为了让用户在提交表单后,input标签内显示刚刚输入的值