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框架中,用户的登录/注册的认证基本都已经封装好了,开箱即用.而登录/注册认证的核心就是: 用户的注册信息存入数据库(登记) 从数据库中读取数据和用户 ...
随机推荐
- 手写简单call,apply,bind
分析一下call的使用方法:call是显示绑定this指向,然后第一个参数是你所指向的this对象,后面跟着多个参数,以逗号隔开 function sum(num1,num2){ return num ...
- IIS部署.net core 的程序后,如何查看控制台的日志?
.net core 3.1 开发的web服务,本地开发的时候,双击运行 xxx.exe(.net core 3.1 发布后,文件夹里面有一个 .exe 文件,双击即可运行,会直接监听本地 xx端口测试 ...
- BeanUtils JavaBean 工具包使用
感谢原文作者:小老弟 原文链接:https://www.cnblogs.com/syncmr/p/10523576.html 目录 简介 BeanUtils类 使用示例 ConvertUtils 功能 ...
- document对象常用属性
转载请注明来源:https://www.cnblogs.com/hookjc/ 注:页面上元素name属性和JavaScript引用的名称必须一致包括大小写 否则会提示你一个错误信息 " ...
- 随机数类 Random
import java.util.Random; /* 随机数类 Random 需求: 编写一个函数随机产生四位的验证码. */ public class Demo5 { public static ...
- Docker 中的问题:”invalid reference format: repository name must be lowercase”
在导入镜像的时候出现问题:invalid reference format: repository name must be lowercase 问题解决:镜像命名不能出现大写字母,将大写改为小写即可 ...
- MindSpore多元自动微分
技术背景 当前主流的深度学习框架,除了能够便捷高效的搭建机器学习的模型之外,其自动并行和自动微分等功能还为其他领域的科学计算带来了模式的变革.本文我们将探索如何用MindSpore去实现一个多维的自动 ...
- Python:pathlib模块
Blog:博客园 个人 关于panthlib模块 pathlib模块提供表示文件系统路径的类,其语义适用于不同的操作系统.路径类被分为提供纯计算操作而没有 I/O 的纯路径,以及从纯路径继承而来但提供 ...
- 自学linux(修改中文)STEP2
登录身份 最好用普通身份登录,而不是root用户,因为root用户权限太高,容易引起安全问题. 不显示中文 安装系统后,在图形化界面设置中文还是不生效.查询资料后如下: 1. 查看 linux 系统下 ...
- Spring Boot 启动特别慢的问题
Q:debug模式下代码编译没有问题,本来10 ms左右可以启动的项目,却耗时了3000多ms,why? A:删除项目中的断点,留几个要用的就行. 至于怎么一键删除所有断点,请自行搜索! 一度以为我的 ...