Blogger Information
Blog 119
fans 3
comment 1
visits 94647
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
登陆验证码实例、接口初识
赵大叔
Original
731 people have browsed it

登陆验证码实例

前端关键代码

  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();

演示效果展示:

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post