PHP验证用户登录例子-学习笔记
2018-06-22 05:01:37来源:未知 阅读 ()
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']:''; ?> <html> <head> <meta charset="utf-8"/> <title>用户登录</title> </head> <body> <h1>用户登录</h1> <form action="login.php" method="post"> 用户名:<input type="text" name="username" value="" /><font color="red"> <?php echo $validate_username; ?> </font><br /><br /> 密 码:<input type="password" name="password" value="" /><font color="red"> <?php echo $validate_password; ?> </font><br /><br /> <input type="submit" value="提交" /> </form> </body> </html>
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__ . '/' . strtolower($class) . '.php'; if (is_file($file)) { include_once $file; } return ''; }
3.3 myexception.php
<?php /** * Created by PhpStorm. * User: andy * Date: 16-11-25 * Time: 下午10:50 */ class MyException extends Exception { }
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; } }
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); } } }
(完.)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash