前台后台$.psot交互
前台
{include file='public/header' /}
<body class="login-bg">
<div class="login layui-anim layui-anim-up">
<div class="message">x-admin2.0-管理登录</div>
<div id="darkbannerwrap"></div>
<form>
<input name="username" type="text" placeholder="用户名">
<hr class="hr15">
<input name="password" type="password" placeholder="密码">
<p id="infoerror" style="color:red;"></p>
<hr class="hr15">
</form>
<button id="loginbutton" class="layui-btn layui-btn-lg layui-btn-fluid" onclick="dologin()"><h3>登入</h3></button>
</div>
<script>
function dologin() {
var username = $("input[name='username']").val();
var password = $("input[name='password']").val();
if (username == '') {
$("#infoerror").text('请填写用户名');
return;
}
if (password == '') {
$("#infoerror").text('请填写密码');
return;
}
var data = {
'username': username,
'password': password
};
$.post("{:url('check')}", data, function (res) {
if (res.code == 0) {
layer.msg(res.msg);
setTimeout("location.href='{:url('home/index')}'", 500);
} else if (res.code == 1) {
$("#infoerror").text(res.msg);
return;
}
else if (res.code == 2) {
$("#infoerror").html(res.msg);
return;
}
}, 'json');
}
</script>
</body>
</html>
后台
<?php
namespace app\admin\controller;
use app\admin\common\Base;
use think\Controller;
use think\Request;
use think\Db;
use think\Session;
class Login extends Base
{
//首页
public function index()
{
return $this->view->fetch('login');
}
/* 验证用户身份*/
public function check()
{
if($this->alreadyLogin()){
exit(json_encode(array('code'=>2,'msg'=>'用户'.Session::get('admin')['username'].'已登录,<a href='.url('home/index').'>点我跳转到管理界面</a>')));
}
$username = trim(input('post.username'));
$password = trim(input('post.password'));
if(!$username){
exit(json_encode(array('code'=>1,'msg'=>'请填写用户名')));
}
if(!$password){
exit(json_encode(array('code'=>1,'msg'=>'请填写密码')));
}
//从数据库查询到数组
$data = Db::table('admin')->where('username',$username)->find(); //如果查到为空
if(!$data){
exit(json_encode(array('code'=>1,'msg'=>'用户名不存在')));
} //如果密码匹配
if($data['password'] != md5($username.$password)){
exit(json_encode(array('code'=>1,'msg'=>'密码错误')));
}
//验证通过
//设置session
Session::set('admin',$data);
exit(json_encode(array('code'=>0,'msg'=>'登录成功')));
} /*退出登录*/
public function logout()
{
//删除session
Session::delete('admin'); //执行成功,并返回登录界面
$this->success('注销成功,正在返回···','admin/login/index');
}
}
前台后台$.psot交互的更多相关文章
- 【Win 10 应用开发】Toast通知激活应用——前台&后台
老周最近热衷于讲故事,接下来还是讲故事时间. 有人问我:你上大学的时候,有加入过学生会吗?读大学有没有必要加入学生会? 哎哟,这怎么回答呢,从短期来说,加入学生会有点用,至少可以娱乐一下,运气好的话, ...
- Javascript 中ajax实现前台向后台交互
第一种情况:前台传入字符串参数 后台返回json字符串.或是json数组 代码如下: 前台: $.ajax({ url: "xxx/xxx.action", data: &quo ...
- java企业级开发的实质就是前台后台如何交互的-各个对象之间如何交互,通信的-程序执行的流程是怎样的
1.开山鼻祖-servlet 如何将url 和 strvlet(.java文件)联系起来的 顺平说的:在xml中,url先找到xml,由对应的url的得到servlet那个类,然后就可以输入一个网址访 ...
- SprimgMVC学习笔记(八)—— SpringMVC与前台json数据交互
一.两种交互形式 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种就是在url的末尾传普通的key/value串过来,针对这两种方式,在Controller类中会有不同的解析, ...
- Asp.net中后台C#数组与前台Javascript数组交互
摘自:http://blog.csdn.net/a6225301/article/details/20003305 在上一篇<asp.net中javascript与后台c#交互>中实现了前 ...
- 封装AJax实现JSON前台与后台交互
实践技术点:1.AJax自定义封装 2.后台序列化与反序列化JSON 3.客户端解析JSON字符串,处理DOM 实现代码如下: 1.JS脚本代码: 1 /*** NOTE:AJAX处理JS TIM ...
- asp.net mvc--传值-前台->后台
前端传值->后端 一.Model Binding 方式 前台 @model ADMgr.Web.Models.ListModel 后台 [HttpPost] public ActionResul ...
- .net中后台c#数组与前台js数组交互
第一步:定义cs数组 cs文件里后台程序中要有数组,这个数组要定义成公共的数组. public string[] lat = null; public string[] lng = null; ...
- 批量删除checkbox前台后台
<%@ page contentType="text/html;charset=UTF-8" %><%@ include file="/WEB-INF/ ...
随机推荐
- vsftpd最详细的配置文件
vsftpd作为一个主打安全的FTP服务器,有很多的选项设置.下面介绍了vsftpd的配置文件列表,而所有的配置都是基于vsftpd.conf这个配置文件的.本文将提供完整的vsftpd.conf的中 ...
- 深入理解IP之CIDR
现代IP基于分类的IP越来越少,而基于CIDR的方式的越来越多.那么可以看下面这篇文章: https://www.cnblogs.com/hark0623/p/6547432.html 这篇文章对CI ...
- MySql快速入门(四)
在之前我们对MySql已经有了基本的了解,接下来我们就来接触MySql的分库分表,请往下阅读: 分库分表之MyCat实现 分库分表介绍: 随着微服务这种架构的兴起,我们应用从一个完整的大的应用,切分为 ...
- 题解【洛谷P2264】情书
题面 看到每一单词在同一句话中出现多次感动值不叠加,一眼想到 \(\text{set}\). 首先将词汇列表中的单词存储起来,我用的是 \(\text{set}\). 对于每一个句子的单词,我们可以先 ...
- 获取table中CheckBox选中行的id
方式一 var selectList=''; jQuery(".table tbody input[type=checkbox]:checked").map(function () ...
- nginx 无法启动:bind() to 0.0.0.0:443 failed
bind to 0.0.0.0:443 failed.其实就是443端口被其它程序占用,要结束占用443端口导致nginx不能启动的应用. CMD: 1.查看所有程序使用的端口 netstat -ao ...
- Linux内核0.11代码阅读(转)
最近决定开始阅读Linux 0.11的源代码. 学习Linux操作系统的核心概念最好的方法莫过于阅读源代码.而Linux当前最新的源代码包已经有70MB左右,代码十分庞大,要想深入阅读十分困难.而Li ...
- lnmp1.5一键安装包安装lnmpa后,添加站点
lnmp1.5一键安装包安装lnmpa后,添加站点 (1)添加站点 (2)配置apache配置文件 在/usr/local/apache/conf/vhost文件夹下,修改webApp站点配置文件ap ...
- 【Unity|C#】基础篇(9)——匿名函数 / Lambda表达式
[学习资料] <C#图解教程>(第13章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...
- day02_1spring3
面向切面编程.AOP手动代理和spring编写代理 一.什么是AOP 1.AOP简介: 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 ...