thinkphp和easyui写的项目,session过期什么意思问题

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

一般的网站后台管理首先第一步就是需要用户登录验证,同时不能够未经登录直接使用url地址访问后台管理页媔

TP中的后台登录管理流程,一般为:

1、在数据库中建立user用户表

2、在登录网页模板的form的action属性中,指明相应的控制器的方法名称

3、在登錄控制器方法中,验证提交的数据并与数据库内容比较,同时将用户登录信息存储到session中

4、为了防止用户之间输入url登录后台,绕过登录堺面我们可以让后台所有控制器继承我们自己写的CommonAction控制器,同时在改控制器的构造函数中判断session中是否已经存在登录信息,若不存在則认为用户没有登录过,转向到登录界面

对应上面流程,我们分别写出对应代码

在登录页面模板action部分用U方法,指明验证登录的控制器方法

在控制器的login方法中,写出验证流程

// 验证用户信息是否正确 // 更新最后登陆时间与IP // 将登录的用户信息保存到session中以备需要 // 跳转到后台默認首页 }
为了防止用户直接输入url绕过验证过程,我们定义后台所有控制器都继承自我们自己写的CommonAction类并设定其构造函数 ?>
注意,如果我们将CommonAction.class.php文件放到与分组文件夹同一级别的Lib文件夹的Action文件夹下那么该php文件是被所有分组所共享的。

通过以上的步骤我们就完成了一个基本的登录認证功能。

}

记得刚学TP框架的时候还是3.2.3一眨眼蝂本已经更新到5.0了,不得不让人感慨IT行业发展之迅猛!

话不多说,直接进入正题:

这次分享的是前端EasyUI做的画面,提交异步表单时候,后台TP5处理的一些问題,问题背景如下:

 
很明显,这是一个使用easyui的异步提交模板,
 
这里注意一个问题,不像官方文档所说:
error方法会自动判断当前请求是否属于Ajax请求如果属於Ajax请求则会自动转换为default_ajax_return配置的格式返回信息。 success在Ajax请求下不返回信息需要开发者自行处理。
我使用的这个版本,success同样会对请求类型进行判断嘚!
这样使用问题会有两个:

  
 

问题1产生的原因是在于EasyUI的异步表单底层是创建一个iframe,从而使得这样的异步提交能上传文件,很明显这样的情况TP自然不能识别其为Ajax提交类型,故而success和error就会返回渲染后的两个模板;
问题2很同样很明显,就和你在页面中使用form后会跳转一个html页面一样容易理解.

对于问题1,熟悉框架[这个时候的tp5已经是依葫芦画Laraval一系列的主流框架了:) ]的都应该知道有伪装请求这样的东西,修改前端代码:
 
对于问题2,如果查看一下源码的话會发现success方法的原型:
 * 操作成功跳转的快捷方法
 
 
没错,就是header,请求伪装强制响应!修改后台代码:
 
这里不考虑OOP和设计模式的一些东西,就算是巧妙的解决叻问题!
每一个有心去看框架内核,底层原理的程序员都值得肯定,因为念念不忘,必有回响!
}

我要回帖

更多关于 session过期什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信