首先制作一个登录界面register.html
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>登录页面</title> <link rel="stylesheet" href="/static/css/bootstrap.min.css"> </head> <style> h2 { text-align: center; } .form-group { width: 400px; margin: 0 auto; } .one { height: 37px; width: 400px; margin: 0 auto; /*border: 1px solid;*/ } </style> <body> <h2>管理员 登录/注册</h2> <br/> <form method="post" action="/admin/Background/management"> <div class="form-group"> <label for="exampleInputEmail1">Email 账号</label> <input name='email' type="email" class="form-control" id="exampleInputEmail1" placeholder="Email"> </div> <br/> <div class="form-group"> <label for="exampleInputPassword1">密 码</label> <input name='password' type="password" class="form-control" id="exampleInputPassword1" placeholder="Password"> </div> <br/> <div class="one"> <div> <button type="submit" class="btn btn-default">登 录</button> </div> </div> </form> <form method="post" action="login.html"> <div style="float: right; margin-top:-35px; margin-right: 484px"> <button type="submit" class="btn btn-default">注 册</button> </div> </form> </body> </html>
登录页面的php方法
use app\admin\validate\logins; use think\Controller; use think\facade\Request; use think\Db;
class Admin extends Controller { //登录页面 public function register() { return view('register'); } //登录界面 信息接收 public function registerReception() { $data = Request::only(['email', 'password']); //dump($data); $validate = new logins; if (!$validate->check($data)) { $this->success(($validate->getError()), '/admin/admin/register'); } $datas = Db::table('user') ->where('email', $data['email']) ->find(); if ($datas == null) { $this->error('账号未注册,请先注册', '/admin/admin/login'); } if ($datas['password'] != sha1($data['password'])) { $this->error('密码错误,请重新输入', '/admin/admin/register'); } else { session('name', 'tian'); $this->success('登录成功', 'hfback/After/management'); } } //session public function quit() { session(null); $this->success('退出成功', '/admin/Admin/register'); }
登录注册共同用的验证
use think\Validate;
class logins extends Validate { protected $rule = [ 'email|邮箱' => [ 'require' => 'require', 'email' => 'email', ], 'password|密码' => [ 'require' => 'require', 'min' => 5, 'max' => 50, 'alphaNum' => 'alphaNum' //仅可以字母加数字 ], ]; }
注册页面login.html
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>注册页面</title> <link rel="stylesheet" href="/static/css/bootstrap.min.css"> </head> <style> h2 { text-align: center; } .form-group { width: 400px; margin: 0 auto; } .two { height: 37px; width: 400px; margin: 0 auto; /*border: 1px solid;*/ } </style> <body> <h2>管理员 登录/注册</h2> <br/> <form method="post" action="/admin/Admin/loginReception"> <div class="form-group"> <label for="exampleInputEmail1">Email 账号</label> <input name='email' type="email" class="form-control" id="exampleInputEmail1" placeholder="Email"> </div> <br/> <div class="form-group"> <label for="exampleInputPassword2">密 码</label> <input name='password' type="password" class="form-control" id="exampleInputPassword2" placeholder="Password"> </div> <br/> <div class="form-group"> <label for="exampleInputPassword3">确认密码</label> <input name='password_confirm' type="password" class="form-control" id="exampleInputPassword3" placeholder="Password"> </div> <br/> <div class="two"> <div class="col-sm-offset-2 col-sm-101" style="float:left ;margin: 0px;"> <button type="submit" class="btn btn-default">提 交</button> </div> <div class="col-sm-offset-2 col-sm-102" style="float:left; margin-left: 95px;"> <button type="reset" class="btn btn-default"><a href="/admin/admin/register">直接登录</a></button> </div> <div class="col-sm-offset-2 col-sm-103" style="float: right"> <button type="reset" class="btn btn-default">重 置</button> </div> </div> </form> </body> </html>
注册php方法
//注册页面 public function login() { return view('login'); } //接收注册提交的信息 public function loginReception() { //获取注册页面传过来的数值 $data = Request::only(['email', 'password', 'password_confirm']); //dump($data); //进行输入判断 if ($data['email'] == null) { $this->error('邮箱账户未填写', '/admin/admin/login'); } if ($data['password'] == null) { $this->error('密码未填写', '/admin/admin/login'); } if ($data['password_confirm'] == null) { $this->error('确认密码未填写', '/admin/admin/login'); } //查询数据库,账号存在可直接登录 $user = Db::table('user') ->field('email') ->select(); //dump($user); foreach ($user as $key => $value) { if ($data['email'] == $value['email']) { $this->error('账号已存在,可直接登录', '/admin/admin/register'); } } if ($data['password'] !== $data['password_confirm']) { $this->error('两次密码不一致,请重新输入'); } else { $values = [ 'email' => $data['email'], 'password' => sha1($data['password']), 'password_confirm' => $data['password_confirm'], 'time' => time() ]; } echo "邮 箱 账 号:" . " " . $values['email'] . "<br/>"; //进行注册的验证 $validate = new logins; if (!$validate->check($values)) { $this->success(($validate->getError()), '/admin/admin/login'); } Db::table('user') ->insert($values); $this->success('注册成功,请重新登录', '/admin/admin/register'); }