请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

$data 未定义?

6-16 登录优化

login.php
<?php
namespace appadmincontroller;

use Exception;
use thinkacadeView;

class Login extends AdminBase
{
    public function initialize()
    {
        if ($this->isLogin()) {
            return $this->redirect(url('index/index'));
        }
    }
    public function index(): string
    {
        try {
            return View::fetch();
        } catch (Exception $e) {
            return show(config('status.error'), '模板不存在');
        }
    }

    public function test(): void
    {
        halt(session(config('admin.session_admin')));
    }


    public function check()
    {
        if (!$this->request->isPost()) {
            return show(config('status.error'), '请求方式错误');
        }
        //参数校验 1.原生方式 2.TP6验证机制
        $username = $this->request->param('username', '', 'trim');
        $password = $this->request->param('password', '', 'trim');
        $captcha = $this->request->param('captcha', '', 'trim');
        if (empty($username) || empty($password) || empty($captcha)) {
            return show(config('status.error'), '参数不能为空');
        }
        if (!captcha_check($captcha)) {
            //验证码校验失败
            //验证码存放于session中使用验证码需要开启session在app下的全局文件middleware.php中
            return show(config('status.error'), '验证码不正确');
        }

        $adminUserObj = new appadminlogicAdminUser();
        $reuslt = $adminUserObj ->login($data);
			//登录提醒未定义变量: data
        return $reuslt;
    }
}
business层AdminUser.php  我放在logic文件里了
<?php

namespace appadminlogic;

use Exception;

class AdminUser
{
    public function login($data)
    {
        try {
            $adminUserObj = new appmodelAdminUser();
            $adminUser = $adminUserObj->getAdminUserByUsername($data['username']);

            //判断用户名是否存在
            if (empty($adminUser) || $adminUser->status !== config('status.mysql.table_normal')) {
                return show(config('status.error'), '不存在该用户');
            }
            $adminUser = $adminUser->toArray();

            //判断密码是否和数据库中一致
            if ($adminUser['password'] !== md5($data['password'] . config('my.salt'))) {
                return show(config('status.error'), '密码错误');
            }

            //需要记录信息到mysql表中
            $updateData = [
                'last_login_time' => time(),
                'last_login_ip' => request()->ip(),
                'update_time' => time(),
            ];
            $res = $adminUserObj->updateById($adminUser['id'], $updateData);
            if (empty($res)) {
                return show(config('status.error'), '登录失败');
            }
        } catch (Exception $e) {
            return show(config('status.error'), '内部异常,登录失败');
        }

        //记录session
        session(config('admin.session_admin'), $adminUser);

        return show(config('status.success'), '登录成功');
    }
}

图片描述

正在回答 回答被采纳积分+3

4回答

提问者 inci 2020-02-06 23:41:18

看到了,,把validate也删除掉了~~~~~粗心阿


谢谢`~~~~

老师顺便回答 一下那个验证码的问题哇~~

0 回复 有任何疑惑可以回复我~
  • singwa #1
    客气了,祝您学习愉快
    验证码问题搞定了吗,亲。
    回复 有任何疑惑可以回复我~ 2020-02-08 16:05:25
提问者 inci 2020-02-06 23:39:50

business层的 AdminUser 的

public function login($data)   ??

0 回复 有任何疑惑可以回复我~
提问者 inci 2020-02-06 23:38:09

https://img1.sycdn.imooc.com//szimg/5e3c32ce0959dd2f17020804.jpg

视频上有这个?

0 回复 有任何疑惑可以回复我~
  • singwa #1
    但是老师上面定义了 $data
    回复 有任何疑惑可以回复我~ 2020-02-06 23:38:44
singwa 2020-02-06 23:35:33

https://img1.sycdn.imooc.com//szimg/5e3c323709bda04115461142.jpg


您好,您这个地方并没有看到哪里有data的定义

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信