博主信息
博文 119
粉丝 3
评论 1
访问量 121263
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
登陆验证码实例、接口初识
赵大叔
原创
947人浏览过

登陆验证码实例

前端关键代码

  1. <?php
  2. session_start();
  3. require __DIR__.'/plugins/captcha/vendor/autoload.php';
  4. use Gregwar\Captcha\CaptchaBuilder;
  5. $builder = new CaptchaBuilder;
  6. $builder->build();
  7. // $SESSION['phrase'] = $builder->getPhrase();
  8. ?>

后台验证代码

  1. switch ($action){
  2. case 'login':
  3. if(empty($res)){
  4. echo json_encode(array('code'=>2, 'msg'=>'用户名不存在。'));
  5. }else{
  6. if(strcasecmp($captchat, $phrase) == 0){
  7. if(password_verify($pwd, $res['password'])){
  8. echo json_encode(array('code'=>1, 'msg'=>'登录成功'));
  9. $_SESSION['username'] = $res['username'];
  10. return true;
  11. }else {
  12. echo json_encode(array('code'=>2, 'msg'=>'用户名或密码不正确。'));
  13. }
  14. }else{
  15. echo json_encode(array('code'=>2, 'msg'=>'验证码不正确。'));
  16. }
  17. }
  18. break;
  19. case 'register':
  20. if(!empty($res)){
  21. echo json_encode(array('code'=>2, 'msg'=>'用户名已存在。'));
  22. }else{
  23. if($pwd == $pwd2){
  24. $pwd = password_hash ($pwd,PASSWORD_DEFAULT );
  25. $sql = "INSERT INTO `users` (`username`, `password`) VALUES (?, ?);";
  26. $stmt = $pdo->prepare($sql);
  27. // 绑定参数到指定的变量名
  28. $para = [$name,$pwd];
  29. // 执行一条预处理语句
  30. $stmt->execute($para);
  31. $insert_id = $pdo->lastInsertId();
  32. if($insert_id){
  33. echo json_encode(array('code'=>1, 'msg'=>'登录成功'));
  34. }else {
  35. echo json_encode(array('code'=>2, 'msg'=>'用户名或密码不正确。'));}
  36. }else{
  37. echo json_encode(array('code'=>2, 'msg'=>'两次输入密码不一致。'));
  38. };
  39. };
  40. break;
  41. case 'logout':
  42. session_destroy();
  43. echo json_encode(array('code'=>1, 'msg'=>'退出成功。'));
  44. break;

演示链接(user:900117,pws:zh155086)
[http://help10086.cn/0121/login.php]

接口与抽象类

1、接口

关键字: interface
语法和类相似: 抽象方法, 常量, 构造方法
所的方法都是抽象方法
访问控制必须是 public
接口: 完全分离了” 设计(抽象类中完成)与实现(工作类中完成)
接口实现关键字:implements

2、抽象类

  • 类中有抽象方法的类
  • 作为接口与工作方法的连接

演示代码:

  1. <?php
  2. // 接口使用场景
  3. interface iActor
  4. {
  5. // 接口常量
  6. const NATION = '中国';
  7. // 接口方法: 都是抽象方法,都是公共方法
  8. // 抽象方法: 没有方法体
  9. public function resume();
  10. public function work();
  11. }
  12. // 抽象类实现接口部部份方法
  13. abstract Class Lending implements iActor
  14. {
  15. protected $name = '张小哥';
  16. // 接口中的抽象方法,必须在工作类实现
  17. public function resume()
  18. {
  19. return $this->name . ' 的国籍是: ' . iActor::NATION;
  20. }
  21. }
  22. // 工作类继承抽象方法后,实现抽象类中没有实现的剩余方法
  23. Class Lendingo extends Lending
  24. {
  25. public function work(){
  26. return '地下工作者';
  27. }
  28. }
  29. // 客户端
  30. $lendingo = new Lendingo;
  31. echo $lendingo->resume();
  32. echo $lendingo->work();

演示效果展示:

批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学