thinkphp验证是否登录并跳转
CommonController.class.php
<?php
namespace Admin\Controller;
use Think\Controller;
class CommonController extends Controller {
//初始化
public function _initialize(){
$uid = session('uid');
//验证控制器名和方法名
if(empty($uid) && ('Index' != CONTROLLER_NAME || !in_array(ACTION_NAME,array('mian','login','ajaxGetAdminInfo')))){
$this->redirect("/Index/login");
}
} public function _empty(){
$this->error('工程师正在维护,请稍后!!!');
}
}
IndexController.class.php
<?php
namespace Admin\Controller;
use Home\Controller\CommonController; class IndexController extends CommonController { public function mian(){
$this->display();
} public function login(){
$this->display();
} //ajax验证登录
public function ajaxGetAdminInfo(){
$username = strtolower(I('username','','strip_tags'));
$password = strtolower(I('password','','strip_tags'));
$adminM = M('admin');
$map['username'] = $username;
$admin = $adminM->where($map)->find();
if(!empty($admin)){
$password = md5(md5($password).C('CIPHERTEXT'));
if($admin['password'] == $password){
session('uid',$admin['uid']);
session('username',$username);
$this->ajaxReturn(array('flag'=>'success','message'=>'确认成功'));
} else {
$this->ajaxReturn(array('flag'=>'error','message'=>'密码不正确'));
}
} else {
$this->ajaxReturn(array('flag'=>'error','message'=>'账号不存在'));
} public function logout(){
session("uid","");
$this->success('退出成功',U('Index/login'));
} }
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login-Admin</title>
<script src="__JS__/jquery-2.1.4.min.js"></script>
</head>
<body> <form action="" method="post" name="loginForm">
账号:<br>
<input type="text" name="username" class="username" ><br>
<span class="user"></span>
<br>
密码:<br>
<input type="password" name="password" class="password"> <br>
<span class="pass"></span>
<br><br>
<input type="button" value="登录" onclick="checkData()">
</form> <br><br>
<script>
function checkData(){
var username = $('.username').val();
var password = $('.password').val();
if(username == ""){
$('.user').text("请填写账号");
return false;
}
if(password == ""){
$('.pass').text("请填写密码");
return false;
} var url = '__APP__/Index/ajaxGetAdminInfo';
var data = {'username':username,'password':password};
$.post(url,data,function(result){
if(result.flag == 'success'){
setTimeout("location.reload()",2000);
location.href="__APP__/Index/mian";
} else {
if(result.message == '账号不存在'){
$('.user').text("账号不存在");
return false;
} else {
$('.user').text("账号或密码错误");
return false;
}
}
});
}
</script>
</body>
</html>

thinkphp验证是否登录并跳转的更多相关文章
- ThinkPHP实例—实现登录验证
ThinkPHP 验证 本篇我们将运用商城实例讲解一下如何运用ThinkPHP做一个登录验证 我们的框架目录结构如下图所示: 其中 app 文件夹就是我们的应用文件夹 它的目录结构如下所示 其中 ...
- MVC4项目中验证用户登录一个特性就搞定
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...
- MVC4验证用户登录特性实现方法
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...
- 转:C4项目中验证用户登录一个特性就搞定
转:C4项目中验证用户登录一个特性就搞定 在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用 ...
- ThinkPHP实现用户登录
ThinkPHP实现用户登录 ? //默认url入口 ? class IndexAction extends Action{ function index() { //检查用户是否登录 if(isse ...
- Spring Security4.1.3实现拦截登录后向登录页面跳转方式(redirect或forward)返回被拦截界面
一.看下内部原理 简化后的认证过程分为7步: 用户访问网站,打开了一个链接(origin url). 请求发送给服务器,服务器判断用户请求了受保护的资源. 由于用户没有登录,服务器重定向到登录页面 填 ...
- 通过cookie验证用户登录
# cookie # cookie# 当你在浏览器登陆时,浏览器记录这个登录信息(服务器响应时发送请求的数据和登录信息),再次访问时 浏览器会将访问请求和缓存的登录信息都发送到服务器, # 服务器通过 ...
- 【转】MVC4验证用户登录特性实现方法
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...
- [转]MVC4项目中验证用户登录一个特性就搞定
本文转自:http://www.mrhuo.com/Article/Details/470/A-Attribute-For-MVC4-Project-Used-To-Validate-User-Log ...
随机推荐
- Tomcat部署web项目,如何直接通过域名访问,不加项目名称
问题:下面的问题是互联网上问得比较多的,但是显然都是同一个问题. JavaWeb项目部署到tomcat服务之后设置不需要输入项目名称即可访问? Tomcat部署web项目,如何直接通过域名访问,不加项 ...
- 出现 cannot be resolved or is not a field 错误
删除R.Java文件,这时,系统会重新生成一个R.java; 删除java代码中的"import Android.R"文件. 重新导入正确的包.
- REDHAT一总复习1更改系统文档文件
十台linux系统需要更改文档.请在server上执行以下任务: .在server计算机上,以student用户在/home/student目录中创建空文件,并将文件取名system_changes- ...
- Handler sendMessage 与 obtainMessage (sendToTarget)比较
转自:http://iaiai.iteye.com/blog/1992196 obtainmessage()是从消息池中拿来一个msg 不需要另开辟空间new new需要重新申请,效率低,obtian ...
- android:clipChildren属性的作用
该属性默认为true,这个属性需要添加到最顶层的ViewGroup,作用是控制子View是否可以超出它所在的父View设定的边界 比如ImageView设置高度100dp,而它所在的父View设置的高 ...
- Java transient 关键字
1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问. 2)transient关键字只能修饰变量,而不能修饰方法和类.注意,本地变量是不能被trans ...
- DuBrute 3.1
PS:转载自小残博客. 今天发现时隔很久的DuBrute竟然更新了,为此我在分享给大家,软件我没测试效果,使用过的朋友或许很清楚,不会太差! 曾几何时,小残也在用DUbrute爆破工具,且玩的不亦乐乎 ...
- MySQL interval()函数
INTERVAL(N,N1,N2,N3,..........) INTERVAL()函数进行比较列表(N,N1,N2,N3等等)中的N值.该函数如果N<N1返回0,如果N<N2返回1,如果 ...
- Authorization in Cloud Applications using AD Groups
If you're a developer of a SaaS application that allows business users to create and share content – ...
- 在CentOS 7.2下升级gcc编译器的版本
默认情况下,CentOS 7.2预装的gcc版本是4.8.x,通过执行命令 gcc -v 可以看到,一般情况下这个版本的编译器已经满足需要了,但是某些特殊的时候为了支持C++更高的特性,需要对gcc编 ...