学习总结
- 利用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 利用三方组件库,实现登录验证码的功能
<?
namespace nLogin;
require_once '../vendor/autoload.php';//自动加载外部组件库
use Gregwar\Captcha\CaptchaBuilder;//使用验证码的外部组件
$builder = new CaptchaBuilder(4);//新建一个4位的验证码对象
$builder->build();//生成一个4位验证码
$captcha = $builder->inline();//生成一个图片文件,可以在img的src属性中使用
$relcapt = $builder->getPhrase();//得到真实的4位验证码字符
?>
<link rel="stylesheet" href="../css/form.css">
<div class="log">
<form action="loginHandle.php?action=login" method="POST">
<h2>用户登录</h2>
<div>
<label for="userNmae">邮箱:</label>
<input type="email" name="userName" id="userName" placeholder="请输入邮箱" require autofocus>
</div>
<div>
<label for="passWord">密码:</label>
<input type="password" name="passWord" id="passWord" placeholder="请输入密码" require>
</div>
<div>
<label for="captcha">验证码:</label>
<input type="text" name="captcha" id="captcha" placeholder="请输入验证码" require>
<img src="<?php echo $captcha;?>" onclick="location.reload();" />
<input type="hidden" name="relCaptcha" value="<?php echo $relcapt;?>">
</div>
<div>
<button type="submit">登录</button>
</div>
<div><a href="register.php">还没有账号,注册一个吧!</a></div>
</form>
</div>
3.handelLogin.php
<?php
session_start();//开启session
require '../autoLoad.php';
use compotents\conn\DBconn;
use compotents\conn\UploadFile;
$user = new DBconn();
$table = 'tb_user';
$where = '*';
$data = [];
$action = $_GET['action'];
switch($action):
//处理注册操作
case 'regist':
if($_SERVER['REQUEST_METHOD']==='POST'):
$name = trim($_POST['userName']);
$nc = trim($_POST['userNc']);
$pwd = md5(trim($_POST['pwd1']));
$tpwd = trim($_POST['pwd1']);
$rdate = date('Y-m-d');
//使用用户名生成文件头像
$fileName = strstr($name,'.',true).'.png';
//生成一个文件上传的对象
$file = new UploadFile($_FILES['userHeadImg']);
//检测文件是否上传成功,参数是文件上传的类型限定
if($file->checkSuccess('image')):
//如果文件上传成功,则保存文件到服务器上
$destDir = $_SERVER['DOCUMENT_ROOT']. '/php11/0511/images/headImg/';
$file->saveFile($destDir,$fileName);
else:
exit('<script>alert("头像上传失败");location.href="register.php";</script>');
endif;
$data = ['name'=>"$name",'nc'=>"$nc",'password'=>"$pwd",'tpassword'=>"$tpwd",'regdate'=>"$rdate",'headimg'=>"$fileName"];
//先判断一下用户名是否已经注册
$where = "`name`='$name'";
$res = $user->select($table,'*',$where);
if(count($res)):
exit('<script>alert("邮箱已经注册过了,可直接登录");location.href="login.php";</script>');
else:
$rowCount = $user->insert($table,$data); //返回受影响的记录条数
if($rowCount):
exit('<script>alert("注册成功");location.href="login.php";</script>');
else:
exit('<script>alert("注册失败");location.href="register.php";</script>');
endif;
endif;
else:
die('请求类型错误!');
endif;
break;
//处理登录操作
case 'login':
if($_SERVER['REQUEST_METHOD']==='POST'):
$userCapt =strtolower($_POST['captcha']) ;
$relCapt =strtolower($_POST['relCaptcha']) ;
if($userCapt !== $relCapt):
exit('<script>alert("登录失败,验证码输入错误");location.href="login.php";</script>');
endif;
$name = trim($_POST['userName']);
$pwd = md5(trim($_POST['passWord']));
$where = "`name`='$name' and `password`='$pwd'";
$res = $user->select($table,'*',$where);
if(count($res)):
$nc = $res[0]['nc'];
$img = $res[0]['headimg'];
$_SESSION['userHeadImg'] = $img;//用户头像的文件名写入session
$_SESSION['userNc'] = $nc;//用户昵称写入session
exit('<script>alert("登录成功");location.reload();location.href="../select.php";</script>');
else:
exit('<script>alert("登录失败,用户名或密码错误");location.href="login.php";</script>');
endif;
else:
die('请求类型错误!');
endif;
break;
//处理退出操作
case 'logout':
if(isset($_SESSION['userNc'])):
session_destroy();//清除session的值
exit('<script>alert("退出成功");location.href="login.php";</script>');
endif;
break;
default:
echo '不存在此操作';
endswitch;
?>
4.效果图