Home>Article>Backend Development> Detailed explanation of php form verification

Detailed explanation of php form verification

Barbara Streisand
Barbara Streisand Original
2017-04-21 14:44:07 3660browse

PHP网站开发建设中,用户注册、登录,留言等等是必不可少的一些实用功能,用户提交的信息数据都是通过form表单提交,然而提交的数据难免会有这样或者那样的错误,不管是有心还是无意,为了保证数据的完整性、安全性,PHP form表单验证是过滤数据的必不可少的环节。

首先我们对用户所有提交的数据都通过 PHP 的 htmlspecialchars() 函数处理。把特殊字符转换为 HTML 实体。这意味着 92d33664ec5f827b86e068a341370a86 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或JavaScript代码(跨站点脚本攻击)对代码进行利用。

当用户提交表单时,我们将做以下两件事情,:

使用 PHP trim() 函数去除用户输入数据中不必要的字符 (如:空格,tab,换行)。

使用PHP stripslashes()函数去除用户输入数据中的反斜杠 (\)

必须字段

字段 验证规则
Name 必需。必须包含字母和空格。
E-mail 必需。必须包含有效的电子邮件地址(包含 @ 和 .)。
Website 可选。如果选填,则必须包含有效的 URL。
Comment 可选。多行输入字段(文本框)。

上述字段是必须的,不能为空。

格式匹配

1、匹配姓名

“/^[a-zA-Z ]*$/”

只允许空格和字母,”^”表示开头,”$”表示结尾,[a-zA-Z ]表示a-z或者A-Z或者空格中的一个字符。

其实例代码如下:

2、匹配E-mail

“/([\w-]+\@[\w-]+.[\w-]+)/”

“\w”匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’;

+匹配前面的子表达式一次或多次;

“-“匹配”-“。

3、匹配URL

“/\b(?:(?:https?|ftp):\/\/|www.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i”

保留表单中的值

在用户点击提交按钮后,为确保字段值是否输入正确,我们在HTML的input元素中插添加PHP脚本, 各字段名为: name, email, 和 website。 在评论的 textarea 字段中,我们将脚本放于 4750256ae76b6b9d804861d8f69e79d3 和 40587128eee8df8f03d0b607fe983014 标签之间。 PHP脚本输出值为: $name, $email, $website, 和 $comment变量

例如如下的代码:

Name:  E-mail:  Website:  Comment: 

来一个PHP表单验证完整实例,其代码如下:

    form  

PHP 表单验证实例

* 必需字段。

"> 名字: *

E-mail: *

网址:

备注:

性别: value="female">女 value="male">男 *

您输入的内容是:"; echo $name; echo "
"; echo $email; echo "
"; echo $website; echo "
"; echo $comment; echo "
"; echo $gender; ?>

以上这些将展示如何安全地处理 PHP 表单。对 HTML 表单数据进行适当的验证对于防范黑客和垃圾邮件很重要!

The above is the detailed content of Detailed explanation of php form verification. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn