前台

{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交互的更多相关文章

  1. 【Win 10 应用开发】Toast通知激活应用——前台&后台

    老周最近热衷于讲故事,接下来还是讲故事时间. 有人问我:你上大学的时候,有加入过学生会吗?读大学有没有必要加入学生会? 哎哟,这怎么回答呢,从短期来说,加入学生会有点用,至少可以娱乐一下,运气好的话, ...

  2. Javascript 中ajax实现前台向后台交互

    第一种情况:前台传入字符串参数 后台返回json字符串.或是json数组  代码如下: 前台: $.ajax({ url: "xxx/xxx.action", data: &quo ...

  3. java企业级开发的实质就是前台后台如何交互的-各个对象之间如何交互,通信的-程序执行的流程是怎样的

    1.开山鼻祖-servlet 如何将url 和 strvlet(.java文件)联系起来的 顺平说的:在xml中,url先找到xml,由对应的url的得到servlet那个类,然后就可以输入一个网址访 ...

  4. SprimgMVC学习笔记(八)—— SpringMVC与前台json数据交互

    一.两种交互形式 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种就是在url的末尾传普通的key/value串过来,针对这两种方式,在Controller类中会有不同的解析, ...

  5. Asp.net中后台C#数组与前台Javascript数组交互

    摘自:http://blog.csdn.net/a6225301/article/details/20003305 在上一篇<asp.net中javascript与后台c#交互>中实现了前 ...

  6. 封装AJax实现JSON前台与后台交互

    实践技术点:1.AJax自定义封装 2.后台序列化与反序列化JSON 3.客户端解析JSON字符串,处理DOM 实现代码如下: 1.JS脚本代码:   1 /*** NOTE:AJAX处理JS TIM ...

  7. asp.net mvc--传值-前台->后台

    前端传值->后端 一.Model Binding 方式 前台 @model ADMgr.Web.Models.ListModel 后台 [HttpPost] public ActionResul ...

  8. .net中后台c#数组与前台js数组交互

    第一步:定义cs数组  cs文件里后台程序中要有数组,这个数组要定义成公共的数组.  public string[] lat = null;  public string[] lng = null; ...

  9. 批量删除checkbox前台后台

    <%@ page contentType="text/html;charset=UTF-8" %><%@ include file="/WEB-INF/ ...

随机推荐

  1. php中的require和include区别

    require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require 1.require 的使用方法如 require("MyRequireFile.p ...

  2. html中引入调用另一个html文件

    第一种: <body> <div id="page1"></div> <div id="page2"></ ...

  3. R语言函数化学习笔记4

    条件语句和循环语句 当你说话时候用到了如果,此时条件出现了 举个条件函数的例子 sign_t<-function(x){ if(x>0){ return(1) }else if(x< ...

  4. Python入门11 —— 基本数据类型的操作

    一:数字类型:int.float字类型 1.操作: 比较运算:int与float之间是可以比较大小 数学运算:+-*/,int与float之间也可以进行数学运算 print(10 > 3.1) ...

  5. STL标准库面试题(转)

    一.vector的底层(存储)机制 二.vector的自增长机制 三.list的底层(存储)机制 四.什么情况下用vector,什么情况下用list 五.list自带排序函数的排序原理 六.deque ...

  6. LED Keychain: Timeless Business Gift

    Every business owner understands the importance of reducing marketing budgets and investing in sales ...

  7. while与do while

    一:循环结构 循环的概念:重复得做某一件事情 举例: 打印50份试卷 沿操场跑10圈 做100道编程题 循环结构的特点: 循环条件 (50,10,100) 循环操作 (打印试卷,沿操场跑圈,做编程题) ...

  8. 解决SourceTree每次拉取提交都需要输入密码的问题

    打开终端并且输入: git config --global credential.helper osxkeychain 第一次需要输入密码,以后都不需要了

  9. flask入门(四)

    数据库 flask在数据库这一块有一个扩展应用叫做flask-sqlalchemy,去虚拟环境里pip install一下,如下 我这边用的是mysql,指定的url是这个mysql://userna ...

  10. linux常用命令和字符串乱码

    top :动态实时显示cpu.内存.进程等使用情况(类似windows下的任务管理器) ps aux 查看所有进程 ps aux|grep java 查看java进程 kill -9 进程号 :强制杀 ...