PHP之ThinkPHP框架(会话)

时间:2020-12-31 10:16:08

网页会话即是实现页面跳转及数据传递,在web开发中,Cookie和Session的使用是极其重要的,GET和POST是最常使用的页面间数据传递的方法,相对于PHP脚本基础,在ThinkPHP中对网页会话都进行了上层封装。

脚本的会话基础:PHP的会话控制

页面跳转:

在控制器或模板中要做页面跳转时使用

 exit(header("Location: ../控制器/方法"));

超链接:

在视图的HTML里如果要超链接到本地的控制器则需要使用

 href="{:url('控制器/方法')}"

JS传递参数:

利用其传递GET数据到后台,实现数据交互

 window.location.href="../控制器/方法?u_id="+u_id+"&u_state=停用";

GET和POST的数据获取:

 <?php
namespace app\index\controller; use think\Request; class Xiao
{
public function xiao2(){ //获取到访问信息
$re=Request::instance(); echo "当前域名:".$re->domain(); echo "获取 GET 或者 POST 参数值:".$re->param("name");//也可以为input("name");
dump(input());//$也可以为:re->param() 打印所有获取的值 $methodx=$re->method();
echo "当前的请求方法:".$methodx; //获取get数据
if($methodx=="GET"){
echo $re->get("getn")."<br/>";
dump($re->get());
} //获取post数据
if($methodx=="POST"){
echo $re->post("postn")."<br/>";
dump($re->post()); } } }

Session的基本使用:

 <?php
namespace app\index\controller; //导入必要的模块
use think\Session; class Xiao
{
public function xiao2(){
//设置值
Session::set('name1','thinkphp'); //判断session值是否存在
if(Session::has("name1")){
echo "--------------------------";
} //获取某个值
echo Session::get('name1'); //删除某个值
//Session::delete('name1');
//清空所有
Session::clear(); //session数组的设置
Session::set("n2.nn1","aa1");
Session::set("n2.nn2","aa2");
//获取某个值
echo Session::get("n2.nn1");
//打印数组中所有值
dump(Session::get("n2")); } }

Cookie的基本使用:

 <?php
namespace app\index\controller; //导入必要的模块
use think\Cookie; class Xiao
{
public function xiao2(){ //cookie单值,时间单位为秒
Cookie::set('name1','value',3600);
//cookie数组
Cookie::set('name',[1,2,3]);
//判断是否存在
if(Cookie::has("name")){
//打印出数组
dump(Cookie::get("name"));
}
//删除某个
Cookie::delete('name');
//清空所有
Cookie::clear();
} }

利用Session的登入判断:

Session的值是保存在WEB服务器中的,利用其来做当次的登入判断是常用的一种方式,首先应该在用户名密码匹配成功后进行Session的写操作,接下来是验证Session内容,进行登入判断。

本来觉得验证写在控制器中就好了,结果发现一旦程序庞大后每个控制器中的方法就多了,因为每个方法就代表着一个入口,所以这是不可取的。如果把Session判断写在模板的构造函数中,因为模板表示这一个数据库的数据表且基本上控制器中的方法都会设计到数据表的操作,这样整体下来很好的实现了登入验证功能。

先导入必要模块:

 use think\Session;

模板的构造函数编写:

 //构造函数
function 类名(){ //判断session
if(!Session::get("username")){ //非登入,跳转页面
exit(header("Location: ../控制器/登入的方法名")); } }

注意:

构造函数需要与类同名,经过测试发现PHP自带的万能类构造方法__construct()是不能使用的


PHP之ThinkPHP框架(会话)的更多相关文章

  1. 制作类似ThinkPHP框架中的PATHINFO模式功能(二)

    距离上一次发布的<制作类似ThinkPHP框架中的PATHINFO模式功能>(文章地址:http://www.cnblogs.com/phpstudy2015-6/p/6242700.ht ...

  2. 攻城记:Thinkphp框架的项目规划总结和踩坑经验

    一.项目模块规划 1.项目分为PC端.移动端.和PC管理端,分为对应目录为 /Application/Home,/Application/Mobile,/Application/Admin: 对应入口 ...

  3. ThinkPHP框架的一些基础应用

    这是俺滴师傅给俺传授了的知识,特在此分享. TP框架,做PHP开发的都应该有所耳闻.下面,我们就来说说入口文件的生成: 创建新项目时,首先,在目录文件下创建一个新的文件夹.然后将Thinkphp框架文 ...

  4. 关于在BAE上部署ThinkPHP框架的问题

    现在有点小兴奋,因为在在BAE上部署ThinkPHP框架的问题快折腾一天了,午觉都没睡,不过没白整总算有点结果.不扯淡了,直入正题吧. 之前熟悉ThinkPHP框架,想在BAE上用ThinkPHP做点 ...

  5. 番外一:关于thinkphp框架下的文件导入路径问题

    总的来说,要使在thinkphp框架下面HTML导入的图片.css文件和js文件有效,只有两种方法:(1)使用绝对路径:(2)在项目目录下创建新目录Public,把所有的img文件夹.js文件夹和cs ...

  6. 【PHP】基于ThinkPHP框架搭建OAuth2&period;0服务

    [PHP]基于ThinkPHP框架搭建OAuth2.0服务 http://leyteris.iteye.com/blog/1483403

  7. thinkphp框架下404页面设置

    404页面即系统在找不到请求的操作方法和找不到请求的控制器名称时的一种报错行为的优化. 第一步:在thinkphp框架中的Home/Comtroller中建一个EmptyController.clas ...

  8. &lbrack;2012-4-10&rsqb;ThinkPHP框架被爆任意代码执行漏洞(preg&lowbar;replace)

    昨日(2012.04.09)ThinkPHP框架被爆出了一个php代码任意执行漏洞,黑客只需提交一段特殊的URL就可以在网站上执行恶意代码. ThinkPHP作为国内使用比较广泛的老牌PHP MVC框 ...

  9. ThinkPHP框架的部署

    1.将ThinkPHP框架的框架文件放到想要放置的地方,与创建的应用文件夹同级 2.vhost文件中设置虚拟目录 3.在hosts文件中配置 4.在应用目录中创建入口文件index.php 5.在入口 ...

  10. ThinkPHP框架如何修改X-Powered-By

    以前用ThinkPHP框架开发了一个小网站,前几天查询页面HTTP状态发现,里面有一项: X-Powered-By: ThinkPHP 2.0 这样虽然没什么,但感觉如果别有用心的人查询会知道你是用这 ...

随机推荐

  1. php 得到一个文件夹下的所有文件,包括子文件中的文件

    $dir = FCPATH."uploads/attachment/"; $this->getFiles($dir); function getFiles($dir) { $ ...

  2. JQ关于浏览器宽高的获取方式

    JQ关于浏览器宽高的获取方式 alert($(window).height()); //浏览器时下窗口可视区域高度alert($(document).height()); //浏览器时下窗口文档的高度 ...

  3. Yii源码阅读笔记(二)

    接下来阅读BaseYii.php vendor/yiisoft/yii2/BaseYii.php—— namespace yii; use yii\base\InvalidConfigExceptio ...

  4. JAVA读取本地配置文件实例

    import java.io.InputStream; import java.util.Properties; public class FileProperties extends Propert ...

  5. Keil提示premature end of file错误 无法生成HEX文件

    今天舍友在使用Keil UV4的时候遇到一个问题:Keil提示premature end of file,无法生成hex文件. 代码是没有错误的.那么问题就出在设置上面了. 百度了一圈,发现很少人解答 ...

  6. iOS URL Schemes与漏洞的碰撞组合

    iOS URL Schemes与漏洞的碰撞组合 前言 iOS URL Schemes,这个单词对于大多数人来说可能有些陌生,但是类似下面这张图的提示大部分人应该都经常看见: 今天要探究的就是:了解iO ...

  7. 知识点:CSS代码语法

    css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示: 选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到 ...

  8. jquery的json对象与字符串之间转换

    json对象----- >>字符串 JSON.stringify(obj) json字符串------>>json对象 JSON.parse(string) 公众号 欢迎关注我 ...

  9. web实践小项目&lt&semi;一&gt&semi;&colon;简单日程管理系统(涉及html&sol;css,javascript,python,sql,日期处理)

    暑假自学了些html/css,javascript和python,苦于学完无处练手几乎过目即忘...最后在同学的建议下做了个简单日程管理系统.借第一版完成之际,希望能将实践期间犯过的错误和获得的新知进 ...

  10. java事物详解

    一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (iso ...