thinkphp后台登录

首先制作一个登录界面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">密&nbsp;&nbsp;&nbsp;&nbsp;码</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">密&nbsp;&nbsp;&nbsp;&nbsp;码</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');

}

转载于:https://my.oschina.net/u/4003338/blog/2252450

基于thinkphp3.1.2的通用网站后台 本通用后台包含以下功能: 1、RBAC权限管理功能; 便捷地对系统中用户进行权限分配,所以权限分配可以在一个页面分配完成。 2、简单新闻发布版块; 基本的新闻发布、修改、删除。 3、无极限分类功能; 满足新闻分类等的无极限分类的功能,你可以根据实际情况修改。 4、每月自动备份功能; 管理员每个月第一次登陆后台,系统会后台自动进行当月数据备份功能。 5、备份、还原数据库,打包已备份sql文件 备份数据量大时,系统会自动分隔备份成多个sql文件,每个sql文件头部记录了当前sql文件包含了那些表数据。支持其他软件导入的sql文件导入(支持导入>200M的sql文件,目前只测试过200M左右的sql文件,虽然支持但是还是不建议这么做)。 6、打包已备份sql文件,在线解压zip数据文件 考虑到节省磁盘空间,你可以将已备份是sql文件打包成zip压缩文件(对应打包的sql文件会被清除),同时你可以在线解压之间zip打包的文件(zip文件保留)。 7、邮件发送sql备份,下载数据库备份文件 在你配置了系统邮件信息后,你可以轻松将你的备份sql文件打包发送到你指定的邮箱中,如果发送的sql文件较多较大,系统考虑到备份邮箱不支持大附件系统将分成多封邮件发送(压缩前50M一封,压缩后一般在6~7M左右),同时你可以将系统备份的sql文件下载到你本地。 8、数据优化修复功能 你可以轻松优化修复你的mysql数据库。 9、缓存清除功能 你不用去一个一个目录地清除缓存文件了,只要勾选确定就可以了 10、JS\CSS 压缩缓存 系统加入了minify压缩js、css缓存,为了和TP的分隔符分开,如果你要将你的js、css加入到minify中,你必须使用竖线“|”将多个文件分隔开。 11、后台有二维码访问图 如果你不需要请自行在/Admin/Lib/Action/CommonAction.class.php 里去掉,同时修改模板文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值