TP5框架中实现多条件登录(自写代码,密码未md5()加密)
HTML代码:
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>前台登录</title>
<link rel="stylesheet" href="__STATIC__/admin/css/login.css">
</head>
<body>
<div class="login">
<div class="center">
<h1>Login</h1>
<div class="inputLi">
<strong>账户</strong>
<input type="text" class="username" name="username" placeholder="用户名/手机号/邮箱">
</div>
<div class="inputLi">
<strong>密码</strong>
<input type="password" class="userpassword" name="userpassword" placeholder="请输入密码">
</div>
<div class="inputLi">
<button class="" onclick="login()">登录</button>
</div>
</div>
</div>
</body>
</html>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
function login() {
var username = $('.username').val();
var userpassword = $('.userpassword').val();
$.ajax({
url: "http://www.examtest.com/home/login/loginSuccess",
type: "POST",
data: {
username: username,
userpassword: userpassword,
__token__: "{$Request.token}"
},
dataType: "JSON",
success: function (res) {
if (res.code == 510) {
alert(res.message)
}
if (res.code == 400) {
alert('登录失败')
}
if (res.code == 200) {
alert(res.message)
location.href = '/admin/order/order'
} }
}) } </script>
控制器代码:
<?php namespace app\home\controller; use app\home\model\LoginModel;
use think\Controller;
use think\Loader;
use think\Request;
use think\Session;
use think\Validate; class Login extends Controller
{
//登录表单
public static function login()
{
return view();
} // 处理登录的数据
public static function loginSuccess()
{
//接受值
$params = \request()->post();
//验证非空
$rule = [
'username|账号' => 'require',
'userpassword|密码' => 'require',
];
$msg = [
'username.require' => '账号不可以为空',
'userpassword.require' => '密码不可以为空',
];
$validate = new Validate($rule, $msg);
$result = $validate->check($params);
if (!$result) {
return json(['code' => 510, 'message' => $validate->getError()]);
} //与数据库进行对比
$userData = LoginModel::getUserInfo($params);
//session记录 用户信息
Session::set('user', $userData);
if (!$userData) {
return json(['code' => 510, 'message' => '登录失败']);
} else {
return json(['code' => 200, 'message' => '登录成功']);
}
}
}
模型代码:
<?php namespace app\home\model; use think\Model; class LoginModel extends Model
{
//链接数据库表名
protected $table = 'user';
//获取数据库信息与用户信息对比
public static function getUserInfo($params)
{
$username = self::where('username', $params['username'])
->find();
$tel = self::where('tel', $params['username'])
->find();
if ($username) {
return $username;
}
if ($tel) {
return $tel;
}
} }
TP5框架中实现多条件登录(自写代码,密码未md5()加密)的更多相关文章
- TP5框架中实现多条件登录
控制器代码 //登录功能 public function login(){ $data = input(); $validate = $this->validate($data,[ 'uname ...
- Spring-Security (学习记录五)--配置登录时,密码采用md5加密,以及获取登录信息属性监听同步自己想要的登录信息
目录 1. PasswordEncoder 采用密码加密 2. 获取当前的用户信息 1. PasswordEncoder 采用密码加密 使用前面的例子.可以看出我们数据库密码是采用明文的,我们在登录的 ...
- <p>在我们的实际软件项目中,管理团队事实上比写代码或者实现一个客户的需求更为的有挑战性。由于编程实际上是和机器打交道,而和机器打交道,仅仅要你符合机器预定的逻辑,</p>
在我们的实际软件项目中,管理团队事实上比写代码或者实现一个客户的需求更为的有挑战性. 由于编程实际上是和机器打交道.而和机器打交道,仅仅要你符合机器预定的逻辑, 一步步迈向解决这个问题的道路上一点都不 ...
- 【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)
最近在写一个C#的项目,用户需求是实现Winform的多文档界面与Matlab算法程序之间的交互.做了一段时间发现,这既能利用业余时间,实战中也可学习一些技术,同时刚毕业也增加一份收入.所以后面会不断 ...
- iOS 中常用的对密码进行MD5加密
iOS中MD5加密 标签(空格分隔): iOS MD5 + (NSString *)MD5:(NSString *)str { const char *cStr = [str UTF8String]; ...
- tp5框架中jquery+ajax分页
jaxa分页,点击按钮直接替换数据, //php代码$page=Request::instance()->param("page"); $page = empty($page ...
- 登录口爆破之ldap的md5加密、验证码认证
ldap的md5加密配合autoDecoder插件.captcha-killer-modified插件 autoDecoder例 需要传入的数据包为: {"username":&q ...
- Git.Framework 框架随手记--ORM条件组合
在上一篇<Git.Framework 框架随手记--ORM新增操作>中简单记录了如何对数据进行删除和修改,其用法都非常简单,在文章中提到了Where()方法,本文将详述Where() 等条 ...
- 关于Laravel框架中Guard的底层实现
1. 什么是Guard 在Laravel/Lumen框架中,用户的登录/注册的认证基本都已经封装好了,开箱即用.而登录/注册认证的核心就是: 用户的注册信息存入数据库(登记) 从数据库中读取数据和用户 ...
随机推荐
- 关于diffing算法中key的使用
在vue和react中(只学了这两个),经常需要渲染元素到DOM上,而且如果不写key,有的浏览器会进行报错或者进行提示. 在我的理解里:key其实就是一个身份的标识,证明这个位置坐的就是这个人.后期 ...
- UIFont
UIFont代表字体,常见创建方法有以下几个:+ (UIFont *)systemFontOfSize:(CGFloat)fontSize; 系统默认字体+ (UIFont *)boldSystemF ...
- java创建自定义类的对象数组
1 public class Student{ 2 static int number = 0; // 静态变量的访问可以不用创建类的实例就可就可使用< 类名.属性 >的方法访问 3 ...
- Shell双重循环、图形排列及九九乘法表
Shell双重循环.图形排列及九九乘法表 目录 Shell双重循环.图形排列及九九乘法表 一.双重循环 1. 双重循环概述 2. 双重循环结构 二.循环特殊操作 1. exit 2. break 3. ...
- 【前端开发日记 】VSCODE被初始化之后重新设置的这些事
不知到什么插件的原因,导致我的vscode编辑器,在输入比如div的时候按tab不会识别成html标签,在设置了推荐词之后还是不好使,于是初始化了自己的编辑器设置 ,导致所有的插件和个性化设置都不见了 ...
- JAVA8学习——新的时间日期API&Java8总结
JAVA8-时间日期API java8之前用过的时间日期类. Date Calendar SimpleDateFormat 有很多致命的问题. 1.没有时区概念 2.计算麻烦,实现困难 3.类是可变的 ...
- node打标签、污点
标签 1.查看当前节点的标签 kubectl get node --show-labels 2.给节点打标签 kubectl label node nodename key=value. 3.删除标签 ...
- Python中模块import的使用案例
1 import test # 导入test模块 2 3 print(test.a) # 使用"模块.变量"调用模块中的变量 4 5 test.hi() # 使用"模块. ...
- 【计理01组08号】SSM框架整合
[计理01组08号]SSM框架整合 数据库准备 本次课程使用 MySQL 数据库.首先启动 mysql : sudo service mysql start 然后在终端下输入以下命令,进入到 MySQ ...
- 做PPT必备的大数据分析网站,好看又免费的报表工具
小明以前是学技术,跳槽来到一家大公司,在这个公司里会经常开会,比如有月度报告.季度报告以及年度报告,在开会前小明了解到同事们都会制作精美的PPT来汇报工作计划和目标,看到同事们精美的PPT里各种好看的 ...