【PHP学习】表单验证实现注册功能

上次学了一下最基本的语法,这次笔记中记录的是用上次学到的语法以及第一次的前端页面做表单验证,实现注册功能。

网页界面博客链接:PHP 学习之路(1)—— Simple Message 系统

基础语法博客链接:PHP 学习之路(3)—— PHP基本语法

实验要求:

在registerverify.php页面添加对注册页面提交来的数据进一步进行校验,功能描述如下:

账号长度不能超过10,否则提示以下信息,并提供返回链接

【PHP学习】表单验证实现注册功能_第1张图片

密码长度不能少于6位,否则提示以下信息,并提供返回链接:

【PHP学习】表单验证实现注册功能_第2张图片

密码与确认密码应当一致,否则提示以下信息,并提供返回链接:

【PHP学习】表单验证实现注册功能_第3张图片

电子邮件地址必须含有”@”和”.”字符,否则提供以下信息,并提供返回链接

【PHP学习】表单验证实现注册功能_第4张图片

当所有校验都完成后,页面会显示用户注册信息:

【PHP学习】表单验证实现注册功能_第5张图片


实验实现

1. 表单修改

【PHP学习】表单验证实现注册功能_第6张图片

根据需求,我们首先需要在确认密码下面添加电子邮箱的输入框。(和之前每一行一样的添加即可)

电子邮箱:

好的,就是酱紫:

【PHP学习】表单验证实现注册功能_第7张图片

电子邮箱就加上去了~

2. 提示界面

提交界面的设计与注册页面一样,不同的地方只有表单DIV,那么我这里就只做了表单DIV的修改。先模拟写一个错误的界面以及一个正确信息的界面:(为了方便以后的工作,这边就不输出注册用户信息了~)

(1)错误界面

【PHP学习】表单验证实现注册功能_第8张图片

(2)正确的界面(改成输出这个)

【PHP学习】表单验证实现注册功能_第9张图片

因为验证设计到多个信息的验证,每个信息如果都写一遍页面的话会非常麻烦,属于非常蠢的事情,所以我这里就将正确和错误的两个界面作为模板,将其需要更改的提示信息以及跳转页面作为变量输出在文本中。

a.正确代码

echo <<
    
$successMsg
$successReturn
YES;

b. 错误代码

echo <<
    
$errorMessage
$errorReturn
ERROR;

以定界符的方式存储两个HTML代码。

c. 用以输出的提示页面的变量

$title          = "";    #————  网站标题
$formtitle      = "";    #————  界面标题
$errorMessage   = "";    #————  错误信息 - 初次必须为空
$successMsg     = "";    #————  正确信息 - 初次必须为空
$successLink    = "";    #————  正确后前往的链接
$successReturn  = "";    #————  正确后前往的网页
$errorLink      = "";    #————  失败后前往的链接
$errorReturn    = "";    #————  正失败前往的链接

这里我的逻辑是 errorMessage 不为空及即为有错误,则注册失败。反之注册成功。

3. 验证页面

我们首先用语法一节中学到的字符串方法,计算账号密码等的长度。注意这里讲各数据转成UTF-8的格式。

mb_strlen(变量,'UTF-8');

(1)账号

if ($unamelength <= 0) {
    $errorMessage="账号不能为空!" ;
} elseif ($unamelength < 4) {
    $errorMessage="账号长度不能小于4位!" ;
} elseif ($unamelength > 10) {
    $errorMessage="账号长度不能超过10位!" ;
}

(2)密码

if ($pwdlength <= 0) {
    $errorMessage="密码不能为空!" ;
} elseif ($pwdlength < 6) {
    $errorMessage="密码长度不能小于6位!" ;
} elseif ($a) {
    $errorMessage="密码不能包含特殊字符!" ;
} elseif (!$b || !$c) {
    $errorMessage="密码必须由数字和字母组成!" ;
} elseif ($pwdlength2 <= 0) {
    $errorMessage="密码确认不能为空!" ;
} elseif ($_POST["password"] != $_POST["passwordTwo"]) {
    $errorMessage="两次密码不一致!" ;
}

(3)邮箱

if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$_POST["email"])) {
    $errorMessage="电子邮件地址格式有误" ;
}

(4)性别、出生年月(额…出生年月就不需要验证了,因为之前的项目的出生年月是自动生成的不超过当前时间的出生年月)

4. 结果输出

在输出结果之前,我们要做的其实就剩下errorMessage的判断了,如果errorMessage的长度小于等于0的话,那么就校验成功,可以注册,如果长度比0大的话就是有错误原因,那么注册失败。

if (mb_strlen($errorMessage,'UTF-8') <= 0) {
echo <<

验证界面的截图就不放啦~

项目地址:https://download.csdn.net/download/ahanwhite/11176436

 

以上,写于 20190513 。
from ahanwhite
如有错误,敬请批评!非常感谢。

你可能感兴趣的:(PHP,学习之路)