您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP表单之表单验证

2025/5/15 17:58:19发布11次查看
一、表单安全
1、htmlspecialchars()函数 把特殊字符转换为 html 实体。这意味着 之类的 html 字符会被替换为 92d33664ec5f827b86e068a341370a86 。这样可防止攻击者通过在表单中注入 html 或 javascript 代码(跨站点脚本攻击)对代码进行利用。
跨站点脚本攻击(cross site scripting):为不和层叠样式表(cascading style sheets, css)的缩写混淆,故将跨站脚本攻击缩写为xss。恶意攻击者往web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。
html 实体:html 中的预留字符必须被替换为字符实体。如果希望正确地显示预留字符,我们必须在 html 源代码中使用字符实体(character entities)。
显示结果 描述 实体名称 实体编号
  空格    
小于号 08a4a2ebf1b67a599f6bb509e7e81493 >
& 和号 & &
“ 引号
‘ 撇号 ' (ie不支持) '
¢ 分 ¢ ¢
£ 镑 £ £
¥ 日圆 ¥ ¥
? 欧元 € €
§ 小节 § §
© 版权 © ©
® 注册商标 ® ®
? 商标 ™ ™
× 乘号 × ×
÷ 除号 ÷ ÷
一个简单的加法器(注意看其中的htmlspecialchars)
+=
2、创建表单验证函数 表单测试姓名:
电邮:
网址:
评论:

二、表单必填 字段 验证规则
name 必需。必须包含字母和空格。
e-mail 必需。必须包含有效的电子邮件地址(包含 @ 和 .)。
website 可选。如果选填,则必须包含有效的 url。
comment 可选。多行输入字段(文本框)。
表单必填 姓名: *
电邮: *
网址:
评论:

三、格式匹配 利用正则表达式(regular expression)对用户输入的数据进行格式验证。更多有关正则表达式的知识请看正则表达式30分钟入门教程以及正则表达式全部符号解释。
int preg_match ( string $pattern , string $subject );
搜索subject与pattern给定的正则表达式的一个匹配。
regex quick reference
符号 意义
[abc] a single character: a, b or c
[^abc] any single character but a, b, or c
[a-z] any single character in the range a-z
[a-za-z] any single character in the range a-z or a-z
^ start of line
$ end of line
\a start of string
\z end of string
. any single character
\s any whitespace character
\s any non-whitespace character
\d any digit
\d any non-digit
\w any word character (letter, number, underscore)
\w any non-word character
\b any word boundary character
(…) capture everything enclosed
(a b)
a? zero or one of a
a* zero or more of a
a+ one or more of a
a{3} exactly 3 of a
a{3,} 3 or more of a
a{3,6} between 3 and 6 of a
1、匹配姓名 “/^[a-za-z ]*$/”
只允许空格和字母,”^”表示开头,”$”表示结尾,[a-za-z ]表示a-z或者a-z或者空格中的一个字符。
$name = test_input($_post[name]);if (!preg_match(/^[a-za-z ]*$/,$name)) { $nameerr = 只允许字母和空格!; }
2、匹配e-mail “/([\w-]+\@[\w-]+.[\w-]+)/”
“\w”匹配包括下划线的任何单词字符。等价于’[a-za-z0-9_]’;
+匹配前面的子表达式一次或多次;
“-“匹配”-“。
3、匹配url “/\b(?:(?:https?|ftp):\/\/|www.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i”
四、保留表单中的值 原理:在input标签中嵌入php脚本。
如果type=”text”,那么就嵌入value=””
如果type=”radio”,那么就嵌入
最后写了一个简单的登录表单:
一个简易的登录表单邮箱:
密码:

版权声明:本文为lshare原创文章,需要转载的请联系我,有问题欢迎评论或私信。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product