打印session,输出null
来源:6-10 后台用户登录-数据更新和session处理
慕数据8150301
2020-08-11
想问问老师是什么问题?
非常感谢!
1.开启中间件session
<?php
// 全局中间件定义文件
return [
// 全局请求缓存
// \think\middleware\CheckRequestCache::class,
// 多语言加载
// \think\middleware\LoadLangPack::class,
// Session初始化
\think\middleware\SessionInit::class
];
2.在admin文件夹下创建config文件夹,创建admin.php
<?php
return [
'session_admin' => 'adminUser',
];
3.使用session用config文件夹中admin文件的进行存储
<?php
namespace app\admin\controller;
use app\BaseController;
use think\facade\View;
use app\common\model\mysql\AdminUser;
class Login extends BaseController {
public function index() {
return View::fetch();
}
public function md5() {
// admin admin
halt(session(config("admin.session_admin")));
// echo md5("admin_singwa_abc");
}
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)) {
// 验证码校验失败
return show(config("status.error"), "验证码不正确");
}
try {
$adminUserObj = new AdminUser();
$adminUser = $adminUserObj->getAdminUserByUsername($username);
// halt($adminUser);
// 判断用户名是否存在
if (empty($adminUser) || $adminUser->status != config("status.mysql.table_normal")) {
return show(config("status.error"), "不存在该用户");
}
$adminUser = $adminUser->toArray();
// 判断密码是否正确
if ($adminUser['password'] != md5($password . "_singwa_abc")) {
return show(config("status.error"), "密码错误");
}
// 需要记录信息到mysql表中
$updateData = [
"last_login_time" => time(),
"last_login_ip" => $this->request->ip(),
"update_time" => time(),
];
$res = $adminUserObj->updateById($adminUser['id'], $updateData);
if (empty($res)) return show(config("status.error"), "登陆失败");
} catch(\Exception $e) {
// todo 记录日志 $->getMessage();
return show(config("status.error"), "内部异常,登陆失败");
}
// 记录session
session(config("admin.session_admin"), $adminUser);
return show(config("status.success"), "登陆成功");
}
}
4.AdminUser.php
<?php
namespace app\common\model\mysql;
use think\Model;
class AdminUser extends Model {
/**
* 根据用户名获得后端表的数据
* @param $username
* @return array|bool|Model|null
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getAdminUserByUsername($username) {
if (empty($username)) return false;
return $this->where(["username" => trim($username)])->find();
}
/**
* 根据主键ID更新数据表中的数据
* @param $id
* @param $data
* @return bool
*/
public function updateById($id, $data) {
$id = intval($id);
if (empty($id) || empty($data) || !is_array($data)) return false;
return $this->where(["id" => $id])->save($data);
}
}
5.登录成功后,访问md5方法,返回值为
^ null
6.php.ini
- login.js
layui.use(['form'], function () {
var form = layui.form,
layer = layui.layer;
// 登录过期的时候,跳出ifram框架
if (top.location != self.location) top.location = self.location;
// 进行登录操作
form.on('submit(login)', function (data) {
data = data.field;
if (data.username == '') {
layer.msg('用户名不能为空');
return false;
}
if (data.password == '') {
layer.msg('密码不能为空');
return false;
}
if (data.captcha == '') {
layer.msg('验证码不能为空');
return false;
}
// 验证码 校验
// var val = $(".input-val").val().toLowerCase();
// var num = show_num.join("");
// if(val != num){
// layer.msg('验证码错误!请重新输入!');
// draw(show_num);
// return false;
// }
// window.location = '../index.html';
// return false;
$(".input-val").val('');
url = "/admin/login/check";
$.ajax({
url,
data,
type:"POST",
success(res){
if(res.status == 1){
layer.msg('登录成功', function () {
window.location = '/admin/index/index';
});
} else {
layer.msg(res.message);
return false;
}
}
})
return false;
});
});
$(function(){
// location.href = "http://www.baidu.com";
draw(show_num);
$("#canvas").on('click',function(){
draw(show_num);
})
})
- index.php
namespace app\admin\controller;
use app\BaseController;
class Index extends BaseController {
public function index() {
echo "hello-admin";
}
}
写回答
1回答
-
singwa
2020-08-16
亲爱的同学您好,关于这个问题您扣扣上和我沟通下哈。
00
相似问题