加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-22 13:06:03 所属栏目:PHP教程 来源:互联网
导读:本篇文章是对php中注册时输入信息验证器的实现方法进行了详细的分析介绍,需要的朋友参考下 1、对输入信息进行验证的类(主要用于验证用户名,密码,重复密码,邮箱,可添加其它功能) 复制代码 代码如下: ?php /** * Validator for Register. */ final cl
  本篇文章是对php中注册时输入信息验证器的实现方法进行了详细的分析介绍,需要的朋友参考下
 
  1、对输入信息进行验证的类(主要用于验证用户名,密码,重复密码,邮箱,可添加其它功能)
 
  复制代码 代码如下:
 
  <?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)<3) {
 
              $errors[] = new Error('username', '用户名长度不能小于3个字符。');
 
          } elseif (strlen($username)>30) {
 
              $errors[] = new Error('username', '用户名长度不能超过30个字符。');
 
          } elseif (!preg_match('/^[A-Za-z]+$/',substr($username, 0, 1))) {
 
              $errors[] = new Error('username', '用户名必须以字母开头。');
 
          } elseif (!preg_match('/^[A-Za-z0-9_]+$/', $username)) {
 
              $errors[] = new Error('username', '用户名只能是字母、数字以及下划线( _ )的组合。');
 
          } elseif (!$password) {
 
              $errors[] = new Error('password', '密码不能为空。');
 
          } elseif (strlen($password)<6) {
 
              $errors[] = new Error('password', '密码长度不能小于6个字符。');
 
          } elseif (strlen($password)>30) {
 
              $errors[] = new Error('password', '密码长度不能超过30个字符。');
 
          } elseif (!preg_match('/^[A-Za-z0-9!@#//$%//^&//*_]+$/', $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;
 
      }
 
  }
 
  ?>
 

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!