您现在的位置是:首页
>
php输入函数 php 注册时输入信息验证器的实现详解
h 注册时输入信息验证器的实现详解 本篇文章是对 h 中注册时输入信息验证器的实现方法进行了详细的分析介绍 需要的朋友参考下 对输入信息进行验证的类(主要用于验证用户名 密码 重复密码 邮箱
php 注册时输入信息验证器的实现详解

本篇文章是对php中注册时输入信息验证器的实现方法进行了详细的分析介绍 需要的朋友参考下
对输入信息进行验证的类(主要用于验证用户名 密码 重复密码 邮箱 可添加其它功能)
复制代码 代码如下: <?php /** * Validator for Register */ final class RegisterValidator { private function __construct() { } /** * Validate the given username password repeat_password and email * @param $username $password $repeat_password and $email to be validated * @return array array of {@link Error} s */ public static function validate($username $password $repeat_password $email) { $errors = array(); $username = trim($username); $password = trim($password); if (!$username) { $errors[] = new Error( username 用户名不能为空 ); } elseif (strlen($username)< ) { $errors[] = new Error( username 用户名长度不能小于 个字符 ); } elseif (strlen($username)> ) { $errors[] = new Error( username 用户名长度不能超过 个字符 ); } elseif (!preg_match( /^[A Za z]+$/ substr($username ))) { $errors[] = new Error( username 用户名必须以字母开头 ); } elseif (!preg_match( /^[A Za z _]+$/ $username)) { $errors[] = new Error( username 用户名只能是字母 数字以及下划线( _ )的组合 ); } elseif (!$password) { $errors[] = new Error( password 密码不能为空 ); } elseif (strlen($password)< ) { $errors[] = new Error( password 密码长度不能小于 个字符 ); } elseif (strlen($password)> ) { $errors[] = new Error( password 密码长度不能超过 个字符 ); } elseif (!preg_match( /^[A Za z !@#$%^&*_]+$/ $password)) { $errors[] = new Error( password 密码只能是数字 字母或!@#$%^&*_等字符的组合 ); } elseif ($password != trim($repeat_password)) { $errors[] = new Error( password 两次输入密码不一致 ); } elseif (!Utils::isValidEmail($email)) { $errors[] = new Error( email 邮箱格式有误 ); } else { // check whether user exists or not $dao = new UserDao(); $user = $dao >findByName(trim($username)); if ($user) { $errors[] = new Error( username 该用户名已经被使用 ); } $user = null; // check whether email being used or not $user = $dao >findByEmail(trim($email)); if ($user) { $errors[] = new Error( email 该邮箱已被注册 ); } } return $errors; } } ?>在注册页面进行调用
复制代码 代码如下: $username = null; $password = null; $repeat_password = null; $email = null; $msg = ""; if (isset($_POST[ username ]) && isset($_POST[ password ]) && isset($_POST[ repeat_password ]) && isset($_POST[ email ])) { $username = addslashes(trim(stripslashes($_POST [ username ]))); $password = addslashes(trim(stripslashes($_POST [ password ]))); $repeat_password = addslashes(trim(stripslashes($_POST [ repeat_password ]))); $email = addslashes(trim(stripslashes($_POST [ email ]))); // validate $errors = RegisterValidator::validate($username $password $repeat_password $email); // validate if (empty($errors)) { // save $dao = new UserDao(); $user = new User(); $user >setEmail($email); $last_login_ip = Utils::getIpAddress(); $user >setLastLoginIp($last_login_ip); $user >setUsername($username); $salt = substr(sha (mt_rand()) ); $hash_password = sha ($salt $password); $user >setPassword($hash_password); $user >setSalt($salt); $user = $dao >save($user); if ($user) { UserLogin::setUserInfo($user); Flash::addFlash( 注册成功! ); } else { Flash::addFlash( 对不起 由于服务器内部错误 导致注册失败 请稍后再试 ); } Utils::redirect( wele ); } foreach ($errors as $e) { $msg = $e >getMessage() "<br>"; }代码中Error类用于记录验证时的错误信息
复制代码 代码如下: lishixinzhi/Article/program/PHP/201311/21003 很赞哦! (1047)