您现在的位置是:首页 >

php输入函数 php 注册时输入信息验证器的实现详解

火烧 2021-05-15 03:16:15 1047
h 注册时输入信息验证器的实现详解 本篇文章是对 h 中注册时输入信息验证器的实现方法进行了详细的分析介绍 需要的朋友参考下    对输入信息进行验证的类(主要用于验证用户名 密码 重复密码 邮箱

php 注册时输入信息验证器的实现详解  

php输入函数 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  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码