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框架中,用户的登录/注册的认证基本都已经封装好了,开箱即用.而登录/注册认证的核心就是: 用户的注册信息存入数据库(登记) 从数据库中读取数据和用户 ...
随机推荐
- sublime配置大全
配置:Preferences→Settings-User 字体和字体大小 "font_face": "YaHei Consolas Hybrid", " ...
- tomcat启用apr需要的三个组件(缺少可能会报错)
tomcat8开始支持Apr,可以提升IO性能,但若配置了使用Apr,如下图所示,则需要安装apr和aprutil和tomcat-native 如果采用nio的方式,则配置可以改成protocol=& ...
- The official raywenderlich.com Objective-C style guide.
The official raywenderlich.com Objective-C style guide. This style guide outlines the coding convent ...
- shell脚本命令(sotr/unip/tr/cut/eval)与正则表达式
shell脚本命令(sotr/unip/tr/cut/eval)与正则表达式 1.sort命令 概述: Linux sort命令用于将文本文件内容加以排序. sort命令可针对文本文件的内容,以行为单 ...
- Java多线程经典案例分享
汇总 案例一 案例二 案例三 案例四 案例五 案例六 案例七 案例一 实现一个容器,提供两个方法,add(),count() 写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数 ...
- Spark算子 - aggregate
释义 将每个partition内元素进行聚合,然后将每个partition的聚合结果进行combine,得到最终聚合结果.最终结果允许跟原始RDD类型不同 方法签名如下: def aggregate[ ...
- 帆软报表(finereport)table块钻取,返回记住table块位置
<1>首先table块加初始化事件,idex为参数,参数值为$tab_idexsetTimeout(function(){_g().getWidgetByName("tabpan ...
- Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看
一.前言 搜索引擎还是在电商项目.百度.还有技术博客中广泛应用,使用最多的还是ElasticSearch,Solr在大数据量下检索性能不如ElasticSearch.今天和大家一起搭建一下,小编是看完 ...
- elasticsearch按URL查询
排序查询:localhost:9200/get-together/_search?sort=date:asc, 排序以及按字段查询:localhost:9200/get-together/_searc ...
- Solon 1.6.25 发布,轻量级应用开发框架
关于官网 千呼万唤始出来: https://solon.noear.org .整了一个月多了...还得不断接着整! 关于 Solon Solon 是一个轻量级应用开发框架.支持 Web.Data.Jo ...