• 技术文章 >php教程 >php手册

    PHP验证用户登录例子-学习笔记

    2016-11-30 23:59:38原创783
    1.基本流程:

    2.UML类图:

    3.PHP代码:

    3.1 index.php

    php
    /**
     * Created by PhpStorm.
     * User: andy
     * Date: 16-11-25
     * Time: 下午10:13
     */
    
    session_start();
    $validate_username=isset($_SESSION['validate_username'])?$_SESSION['validate_username']:'';
    $validate_password=isset($_SESSION['validate_password'])?$_SESSION['validate_password']:'';
    
    ?>
    
    
    
        
        用户登录
    
    

    用户登录

    用户名: echo $validate_username; ?>

    码: echo $validate_password; ?>

    View Code

    3.2 login.php

    php
    /**
     * Created by PhpStorm.
     * User: andy
     * Date: 16-11-25
     * Time: 下午10:20
     */
    
    session_start();
    
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    
    $user = new User($username, $password);
    
    //判断登录是否成功
    try{
        Validate::validateUser($user);
    
        //验证通过,登录成功
        $_SESSION['username']=$username;
        header('location:main.php');
    }catch (MyException $me){
    
        //验证失败
        header('location:index.php');
    }
    
    
    /**
     * 自动加载类
     * @param $class
     * @return string
     */
    function __autoload($class)
    {
        $file = __DIR__ . '//m.sbmmt.com/m/' . strtolower($class) . '.php';
        if (is_file($file)) {
            include_once $file;
        }
        return '';
    }
    View Code

    3.3 myexception.php

    php
    
    /**
     * Created by PhpStorm.
     * User: andy
     * Date: 16-11-25
     * Time: 下午10:50
     */
    class MyException extends Exception
    {
    
    }
    View Code

    3.4 user.php

    php
    
    /**
     * Created by PhpStorm.
     * User: andy
     * Date: 16-11-25
     * Time: 下午10:29
     */
    class User
    {
        private $username = '';
        private $password = '';
    
        function __construct($username, $password)
        {
            $this->username = $username;
            $this->password = $password;
        }
    
        /**
         * 返回用户名
         * @return string
         */
        public function getUsername(): string
        {
            return $this->username;
        }
    
        /**
         * 返回密码
         * @return string
         */
        public function getPassword(): string
        {
            return $this->password;
        }
    }
    View Code

    3.5 validate.php

    php
    
    /**
     * 验证类
     * Created by PhpStorm.
     * User: andy
     * Date: 16-11-25
     * Time: 下午10:34
     */
    class  Validate
    {
        /**
         * 验证用户
         * @param User $user
         * @throws MyException
         */
        static function validateUser(User $user)
        {
            //print_r($user);
            $username = $user->getUsername();
            $password = $user->getPassword();
    
            unset($_SESSION['validate_username'],$_SESSION['validate_password']);
    
            //验证用户名
            try {
                self::validateUsername($username);
            }catch (MyException $me) {
                $_SESSION['validate_username']=$me->getMessage();
            }
    
            //验证密码
            try {
                self::validatePassword($password);
            }catch (MyException $me) {
                $_SESSION['validate_password']=$me->getMessage();
            }
    
    
            if(isset($me)){
                throw $me;
            }
    
        }
    
        /**
         * 验证用户名
         * @param $username
         * @throws MyException
         */
        static private function validateUsername($username)
        {
            $lem = strlen($username);
            if ($lem < 3) {
                //抛出异常
                throw new MyException('用户名长度不能小于3位', E_USER_ERROR);
            } elseif ($lem > 8) {
                throw new MyException('用户名长度不能超过8位', E_USER_ERROR);
            }
        }
    
        /**
         * 验证密码
         * @param $password
         * @throws MyException
         */
        static private function validatePassword($password)
        {
            $lem = strlen($password);
            if ($lem < 3) {
                //抛出异常
                throw new MyException('密码长度不能小于3位', E_USER_ERROR);
            } elseif ($lem > 8) {
                throw new MyException('密码长度不能超过8位', E_USER_ERROR);
            }
        }
    
    }
    View Code

    (完.)

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:PHP验证用户登录例子-学习笔记
    上一篇:安装phpstudy之后发现80端口被占用 下一篇:Thinkphp怎么实现异常错误处理?
    线上培训班

    相关文章推荐

    • php 备份数据库代码(生成word,excel,json,xml,sql)• 最完整PHP常用工具类大全,• php检查字符串中是否有外链的方法,php字符串• 浅谈PDO的rowCount函数,浅谈pdorowcount• php使用GD创建保持宽高比缩略图的方法,phpgd缩略图

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网