实例详解php cookie与session会话基本用法
cookie是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个Web服务器存储cookie。以后浏览器在给特定的Web服务器发请求的时候,同时会发送所有为该服务器存储的cookie。
session是另一种记录客户状态的机制。不同的是cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。
cookie即是传统的会话控制,由于要存储的信息是保存在客户端的,所以安全系数较低,而session会话控制是将要存储的信息保存在服务器上的,所以相对于cookie安全系数较高.
不论是在使用cookie方式存储,还是session方式存储在使用存储的函数之前都不能有输出语句,否则会产生一个e级错误。
使用cookie的存储的方式
setcookie('cookie_name','cookie_value',cookie_time);
使用session的存储方式
session_start());
当用户一次执行到session_start()这个函数时,会产生一个session_id(),这个session_id()会复制一份,一份作为文件名,保存在服务器上,一份作为字符串保存给客户端的session_name()的文件下,当用户第二次执行到sessio_start()的时候用户是带着自己的session_id()多来的,然后当我们需要使用到session的时候,客户端会拿着自己的session_id()在服务器上找与自己手上的session_id()相匹配的session_id(),然后打开文件。
下面是index.php
- <?php
- session_start();//用户第一次执行session_start()函数
- $_SESSION['name']='谭勇';//向session文件里面存放数据
- $_SESSION['age']=19;;//向session文件里面存放数据
- ?>
下面是index_a.php
- <?php
- session_start();//用户第二次执行session_start()函数
- if(isset($_SESSION['name'])){ //判断是否存在sesison,如果是就执行当前括号当中的内容
- echo $_SESSION['name'];
- echo '<br>';
- echo $_SESSION['age'];
- }else{
- header("location:index.php");//如果不存在session则跳转到页面index.php
- }
- ?>
那么我们注册了一个会话之后我们怎么去删除这个会话呢?
以下是删除会话的代码:
- <?php
- session_start();//开启session
- if(isset($_SESSION['name'])){
- unset($_SESSION['name']);//删除$_SESSION['name'];
- unset($_SESSION ['age']);//删除$_SESSION['age'];
- session_destroy();注销会话
- }else{
- header("location:index.php");//如果不存在session则跳转到页面index.php
- }
- //如果你觉得我打的代码对你有帮助,求评论,请注意发言的礼仪,乱说删评论.
- ?>