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

Posted

篇首语:岁寒,然后知松柏之后凋也。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 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类用于记录验证时的错误信息

复制代码 代码如下: cha138/Article/program/PHP/201311/21003

相关参考

知识大全 php验证用户输入的邮箱有效性和正确性

  functionvalidate_email($email)  $exp="^[az]+([_][az]+)*@([az]+([_][az]+))+$";  if(eregi($exp$email

知识大全 获取用户的注册信息[3]

PHP网络编程:获取用户的注册信息[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 获取用户的注册信息[2]

PHP网络编程:获取用户的注册信息[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 获取用户的注册信息[1]

PHP网络编程:获取用户的注册信息[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 怎样用java实现验证码

  现在许多系统的注册登录或者发布信息模块都添加的随机验证码功能就是为了避免自动注册程序或者自动发布程序的使用  验证码实际上就是随机选择一些字符以图片的形式展现在页面上如果进行提交操作的同时需要将图

知识大全 xmlhttp的open方法使用详解

  open  创建一个新的请求并指定此请求的方法URL以及验证信息  语法  oXMLHttpRequestopen(bstrMethodbstrUrlvarAsyncbstrUserbstrPas

知识大全 财付通快捷支付充值时,在输入短信验证那里出错了,充值不成功,可是银行卡里的钱扣了,怎么办

财付通快捷支付充值时,在输入短信验证那里出错了,充值不成功,可是银行卡里的钱扣了,怎么办?看看财富通力又没退款,没的话等几天一般就有了用财付通快捷支付,银行卡钱扣了,但交易没成功,怎么办你好,这类情况

知识大全 苹果6手机创建id成功后如何验证帐号

苹果6手机创建id成功后如何验证帐号到注册时候的邮箱里面去会有一封验证邮箱的点击验证下就可以了。苹果手机ID创建成功为什么下载软件还要输入密码你好。可以设置为不需要密码。进入设置-iTunesstor

知识大全 征信中心验证时为什么总说持卡人身份信息或手机号不正确

征信中心验证时为什么总说持卡人身份信息或手机号不正确原因如下:一手机号码非本人身份证办理。二身份信息等级错误。三手机信息等级错误。个人征信查询码要登陆中国人民银行征信中心个人信用信息服务平台::ipc

知识大全 详解Struts中Validator验证框架的使用

详解Struts中Validator验证框架的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!