上次学了一下最基本的语法,这次笔记中记录的是用上次学到的语法以及第一次的前端页面做表单验证,实现注册功能。
网页界面博客链接:PHP 学习之路(1)—— Simple Message 系统
基础语法博客链接:PHP 学习之路(3)—— PHP基本语法
在registerverify.php页面添加对注册页面提交来的数据进一步进行校验,功能描述如下:
账号长度不能超过10,否则提示以下信息,并提供返回链接
密码长度不能少于6位,否则提示以下信息,并提供返回链接:
密码与确认密码应当一致,否则提示以下信息,并提供返回链接:
电子邮件地址必须含有”@”和”.”字符,否则提供以下信息,并提供返回链接
当所有校验都完成后,页面会显示用户注册信息:
根据需求,我们首先需要在确认密码下面添加电子邮箱的输入框。(和之前每一行一样的添加即可)
电子邮箱:
好的,就是酱紫:
电子邮箱就加上去了~
提交界面的设计与注册页面一样,不同的地方只有表单DIV,那么我这里就只做了表单DIV的修改。先模拟写一个错误的界面以及一个正确信息的界面:(为了方便以后的工作,这边就不输出注册用户信息了~)
(1)错误界面
(2)正确的界面(改成输出这个)
因为验证设计到多个信息的验证,每个信息如果都写一遍页面的话会非常麻烦,属于非常蠢的事情,所以我这里就将正确和错误的两个界面作为模板,将其需要更改的提示信息以及跳转页面作为变量输出在文本中。
a.正确代码
echo <<
$successMsg
$successReturn
b. 错误代码
echo <<
$errorMessage
$errorReturn
以定界符的方式存储两个HTML代码。
c. 用以输出的提示页面的变量
$title = ""; #———— 网站标题
$formtitle = ""; #———— 界面标题
$errorMessage = ""; #———— 错误信息 - 初次必须为空
$successMsg = ""; #———— 正确信息 - 初次必须为空
$successLink = ""; #———— 正确后前往的链接
$successReturn = ""; #———— 正确后前往的网页
$errorLink = ""; #———— 失败后前往的链接
$errorReturn = ""; #———— 正失败前往的链接
这里我的逻辑是 errorMessage 不为空及即为有错误,则注册失败。反之注册成功。
我们首先用语法一节中学到的字符串方法,计算账号密码等的长度。注意这里讲各数据转成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)性别、出生年月(额…出生年月就不需要验证了,因为之前的项目的出生年月是自动生成的不超过当前时间的出生年月)
在输出结果之前,我们要做的其实就剩下errorMessage的判断了,如果errorMessage的长度小于等于0的话,那么就校验成功,可以注册,如果长度比0大的话就是有错误原因,那么注册失败。
if (mb_strlen($errorMessage,'UTF-8') <= 0) {
echo <<
验证界面的截图就不放啦~
项目地址:https://download.csdn.net/download/ahanwhite/11176436
以上,写于 20190513 。
from ahanwhite
如有错误,敬请批评!非常感谢。