网页会话即是实现页面跳转及数据传递,在web开发中,Cookie和Session的使用是极其重要的,GET和POST是最常使用的页面间数据传递的方法,相对于PHP脚本基础,在ThinkPHP中对网页会话都进行了上层封装。
脚本的会话基础:PHP的会话控制
(("Location: ../控制器/方法"));
超链接:
在视图的HTML里如果要超链接到本地的控制器则需要使用
href="{:url('控制器/方法')}"
JS传递参数:
利用其传递GET数据到后台,实现数据交互
window.location.href="../控制器/方法?u_id="+u_id+"&u_state=停用";
GET和POST的数据获取:
PHP
获取到访问信息
=Request::
"当前域名:".->
"获取 GET 或者 POST 参数值:".->param("name");
dump(input());param() 打印所有获取的值
=-> "当前的请求方法:".
获取get数据
(=="GET" ->get("getn")."
" dump(-> 获取post数据 (=="POST" ->post("postn")."
" dump(-> }
" dump(-> 获取post数据 (=="POST" ->post("postn")."
" dump(-> }
Session的基本使用:
PHP
Session::set('name1','thinkPHP'
(Session::has("name1" "--------------------------"
获取某个值
Session::get('name1'
删除某个值
Session::
Session::set("n2.nn1","aa1" Session::set("n2.nn2","aa2" 获取某个值
Session::get("n2.nn1"
dump(Session::get("n2"
}
Cookie的基本使用:
PHP
Cookie::set('name1','value',3600
Cookie::set('name',[1,2,3
(Cookie::has("name"
dump(Cookie::get("name" 删除某个
Cookie::delete('name'
Cookie::
}
利用Session的登入判断:
Session的值是保存在WEB服务器中的,利用其来做当次的登入判断是常用的一种方式,首先应该在用户名密码匹配成功后进行Session的写操作,接下来是验证Session内容,进行登入判断。
本来觉得验证写在控制器中就好了,结果发现一旦程序庞大后每个控制器中的方法就多了,因为每个方法就代表着一个入口,所以这是不可取的。如果把Session判断写在模板的构造函数中,因为模板表示这一个数据库的数据表且基本上控制器中的方法都会设计到数据表的操作,这样整体下来很好的实现了登入验证功能。
先导入必要模块:
think\Session;
模板的构造函数编写:
函数
(!Session::get("username"
404@面
(("Location: ../控制器/登入的方法名"
}
注意:
构造函数需要与类同名,经过测试发现PHP自带的万能类构造方法__construct()是不能使用的