博客列表 >Composer常用命令,使用三方组件实现登录验证码

Composer常用命令,使用三方组件实现登录验证码

王娇
王娇原创
2020年05月18日 17:33:55820浏览

学习总结

  • 利用composer可以方便的下载第三方组件包
  • 利用composer可以方便的管理项目中的依赖关系
  • 利用composer可以很方便的创建一个laravel框架的项目

1. Composer常用命令与功能

命令 功能
php -v 查看当前php版本
clear 清除当前powershalle数据
pwd 显示当前目录
cd.. 回到上一级目录
cd 目录名 进入下一级目录
composer require 包名称 下载一个第三方组件包
composer create-project 文件夹名 在当前文件夹下创建一个项目
composer create-project laravel/laravel 在当前文件夹下创建一个laravel项目

2.login.php 利用三方组件库,实现登录验证码的功能

  1. <?
  2. namespace nLogin;
  3. require_once '../vendor/autoload.php';//自动加载外部组件库
  4. use Gregwar\Captcha\CaptchaBuilder;//使用验证码的外部组件
  5. $builder = new CaptchaBuilder(4);//新建一个4位的验证码对象
  6. $builder->build();//生成一个4位验证码
  7. $captcha = $builder->inline();//生成一个图片文件,可以在img的src属性中使用
  8. $relcapt = $builder->getPhrase();//得到真实的4位验证码字符
  9. ?>
  10. <link rel="stylesheet" href="../css/form.css">
  11. <div class="log">
  12. <form action="loginHandle.php?action=login" method="POST">
  13. <h2>用户登录</h2>
  14. <div>
  15. <label for="userNmae">邮箱:</label>
  16. <input type="email" name="userName" id="userName" placeholder="请输入邮箱" require autofocus>
  17. </div>
  18. <div>
  19. <label for="passWord">密码:</label>
  20. <input type="password" name="passWord" id="passWord" placeholder="请输入密码" require>
  21. </div>
  22. <div>
  23. <label for="captcha">验证码:</label>
  24. <input type="text" name="captcha" id="captcha" placeholder="请输入验证码" require>
  25. <img src="<?php echo $captcha;?>" onclick="location.reload();" />
  26. <input type="hidden" name="relCaptcha" value="<?php echo $relcapt;?>">
  27. </div>
  28. <div>
  29. <button type="submit">登录</button>
  30. </div>
  31. <div><a href="register.php">还没有账号,注册一个吧!</a></div>
  32. </form>
  33. </div>

3.handelLogin.php

  1. <?php
  2. session_start();//开启session
  3. require '../autoLoad.php';
  4. use compotents\conn\DBconn;
  5. use compotents\conn\UploadFile;
  6. $user = new DBconn();
  7. $table = 'tb_user';
  8. $where = '*';
  9. $data = [];
  10. $action = $_GET['action'];
  11. switch($action):
  12. //处理注册操作
  13. case 'regist':
  14. if($_SERVER['REQUEST_METHOD']==='POST'):
  15. $name = trim($_POST['userName']);
  16. $nc = trim($_POST['userNc']);
  17. $pwd = md5(trim($_POST['pwd1']));
  18. $tpwd = trim($_POST['pwd1']);
  19. $rdate = date('Y-m-d');
  20. //使用用户名生成文件头像
  21. $fileName = strstr($name,'.',true).'.png';
  22. //生成一个文件上传的对象
  23. $file = new UploadFile($_FILES['userHeadImg']);
  24. //检测文件是否上传成功,参数是文件上传的类型限定
  25. if($file->checkSuccess('image')):
  26. //如果文件上传成功,则保存文件到服务器上
  27. $destDir = $_SERVER['DOCUMENT_ROOT']. '/php11/0511/images/headImg/';
  28. $file->saveFile($destDir,$fileName);
  29. else:
  30. exit('<script>alert("头像上传失败");location.href="register.php";</script>');
  31. endif;
  32. $data = ['name'=>"$name",'nc'=>"$nc",'password'=>"$pwd",'tpassword'=>"$tpwd",'regdate'=>"$rdate",'headimg'=>"$fileName"];
  33. //先判断一下用户名是否已经注册
  34. $where = "`name`='$name'";
  35. $res = $user->select($table,'*',$where);
  36. if(count($res)):
  37. exit('<script>alert("邮箱已经注册过了,可直接登录");location.href="login.php";</script>');
  38. else:
  39. $rowCount = $user->insert($table,$data); //返回受影响的记录条数
  40. if($rowCount):
  41. exit('<script>alert("注册成功");location.href="login.php";</script>');
  42. else:
  43. exit('<script>alert("注册失败");location.href="register.php";</script>');
  44. endif;
  45. endif;
  46. else:
  47. die('请求类型错误!');
  48. endif;
  49. break;
  50. //处理登录操作
  51. case 'login':
  52. if($_SERVER['REQUEST_METHOD']==='POST'):
  53. $userCapt =strtolower($_POST['captcha']) ;
  54. $relCapt =strtolower($_POST['relCaptcha']) ;
  55. if($userCapt !== $relCapt):
  56. exit('<script>alert("登录失败,验证码输入错误");location.href="login.php";</script>');
  57. endif;
  58. $name = trim($_POST['userName']);
  59. $pwd = md5(trim($_POST['passWord']));
  60. $where = "`name`='$name' and `password`='$pwd'";
  61. $res = $user->select($table,'*',$where);
  62. if(count($res)):
  63. $nc = $res[0]['nc'];
  64. $img = $res[0]['headimg'];
  65. $_SESSION['userHeadImg'] = $img;//用户头像的文件名写入session
  66. $_SESSION['userNc'] = $nc;//用户昵称写入session
  67. exit('<script>alert("登录成功");location.reload();location.href="../select.php";</script>');
  68. else:
  69. exit('<script>alert("登录失败,用户名或密码错误");location.href="login.php";</script>');
  70. endif;
  71. else:
  72. die('请求类型错误!');
  73. endif;
  74. break;
  75. //处理退出操作
  76. case 'logout':
  77. if(isset($_SESSION['userNc'])):
  78. session_destroy();//清除session的值
  79. exit('<script>alert("退出成功");location.href="login.php";</script>');
  80. endif;
  81. break;
  82. default:
  83. echo '不存在此操作';
  84. endswitch;
  85. ?>

4.效果图

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议