Session的初步介绍

  1  Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的不同浏览器(一个用户的不同浏览器将生成不同的session文件)创建一个其独享的session文件,

    由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务

器中的其他web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

  2  原理示意图

  

3  session的基本用法(curd)增删改查

 session 操作-----增

  3.1 如何保持session

   //1 初始化session

     session_start();

   //2 保存数据 session文件可以保持基本数据类型

      四种标量类型: boolean (布尔型)integer (整型)float (浮点型, 也称作 double) string (字符串)

      两种复合类型:    array (数组)    object (对象)

      最后是两种特殊类型:    resource (资源)NULL (NULL)                 以上8种数据类型均可保持

      $_SESSION['name']='www.dacnnet.com';   (string)

       $_SESSION['name']='襄阳大成网络';   (string 汉字会urlencode转换)

         $_SESSION['age']=100;       (interger)

       $_SESSION['isboy']=true;    (boolean)

$array=array('北京','小明','hello');

$_SESSION['arr1']=$array;     (array)

class test{

private $name;

private $age;

function __construct($name,$age){

$this->name=$name;

$this->age = $age;

}

}

$test = new test('wc',20);

$_SESSION['test'] = $test;  (object)

    session 操作-----改

      改很简单  原来的$_SESSION['name']='www.dacnnet.com'; 修改为 $_SESSION['name']='dacnnet.com' 即可。

    session 操作-----查

      session 保存形式是数组 取出单个数据

      $name = $_SESSION['name'];

      当然,你也可以循环来取出

      foreac($_SESSION as $k => $v){

        echo "$k ======== $v";

}

session 操作-----删

      session的删除有俩种形式

      ① 按逻辑出牌,点击网站的 安全退出 链接

         1  unset($_SESSION['name']);   //一个一个的删除。

              你若是按照这样的方法一个一个的删除,session信息和session变量将不存在。session文件内容将被清空,session文件的大小为0。

              但是session文件不会删除。直到系统删除(系统如何删除  待续)。

         2 $_SESSION = array();     //声明一个空数组

              session 的存放形式是以数组的形式,像这样 $_SESSION['name']='wc';

              所以给一个$_SESSION = array(); 给他一个空数组,

              此时session信息和session变量将不存在, session文件内容将被清空,session文件的大小为0。

              但是session文件不会删除。直到系统删除(系统如何删除  待续)。   

         3   session_destory();      //销毁

              此时session文件将删除 ,所以 关于此用户的此浏览器的此session信息。 将不存在。干净 彻底。

      ②  不按照逻辑出牌,直接点 X  或者直接关闭浏览器

          此时需要让服务器自行删除,这是session的垃圾回收机制。(系统如何删除  待续)

PHP -Session 深入解剖 ① session的基本操作 【大成出品 --必是精品】。的更多相关文章

  1. 深度解剖session运行原理

    已经大半年没有更新博客了,一方面有比博客更重要的事情要做,另外一方面也没有时间来整理知识,所以希望在接下来的日子里面能够多多的写博客来与大家交流 什么是session session的官方定义是:Se ...

  2. [Session] SessionHelper---C#操作Session的帮助类 (转载)

    点击下载 SessionHelper.rar 下面是代码大家看一下 这个类主要是关于Session的基本操作比如:1.获取Session值2.设置一个Session的值3.清空所有的Session4. ...

  3. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  4. 【荐】PHP Session和Cookie,Session阻塞,Session垃圾回收,Redis共享Session,不推荐Memcached保存Session

    什么是 Session 在 web 应用开发中,Session 被称为会话.主要被用于保存某个访问者的数据. 由于 HTTP 无状态的特点,服务端是不会记住客户端的,对服务端来说,每一个请求都是全新的 ...

  5. 报表session与应用session常识普及

    1. 报表session与应用session 报表集成到项目中可能会有一个疑问就是系统应用和报表应用在一个web服务器下,那系统session和报表session是不是一个session呢?如果不是那 ...

  6. 使用Memcached Session Manager扩展Session管理

    >>Tomcat的session管理 在请求过程中首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中. 然后再从request获取sessi ...

  7. [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. asp.net(C#)清除全部Session与单个Session

    Session.Abandon();//清除全部SessionSession["UserName"] = null;Session.Remove("UserName&qu ...

  9. Tomcat的SessionID引起的Session Fixation和Session Hijacking问题

    上一篇说到<Spring MVC防御CSRF.XSS和SQL注入攻击>,今天说说SessionID带来的漏洞攻击问题.首先,什么是Session Fixation攻击和Session Hi ...

随机推荐

  1. Android动画主要包含补间动画(Tween)View Animation、帧动画(Frame)Drawable Animation、以及属性动画Property Animation

    程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...

  2. Android 使用 HTTP 协议访问网络

    正在看<第一行代码>,记录一下使用 HTTP 协议访问网络的内容吧! 在Android发送Http请求有两种方式,HttpURLConnection和HttpClient. 1.使用Htt ...

  3. Dapper使用方法:dapper-dot-net/Tests/Tests.cs解析(1)方法:TestMultiMapWithConstructor

    sql: SELECT * FROM users; SELECT * FROM posts; SELECT * FROM Posts p LEFT JOIN Users u ON u.Id= p.Ow ...

  4. java处理高并发高负载类网站的优化方法

    java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF ...

  5. CF Soldier and Badges (贪心)

    Soldier and Badges time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  6. Redis中的批量删除数据库中的Key

    本文参考:http://blog.csdn.net/spring21st/article/details/15771861 http://stackoverflow.com/questions/575 ...

  7. 1172 Hankson 的趣味题[数论]

    1172 Hankson 的趣味题 2009年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Descrip ...

  8. OS X 10.10 apache配置

    配置内容转自:http://www.linuxidc.com/Linux/2015-04/116347.htm 一.apache的配置 apache已经自带了,只需如下三个命令就可以了. 开启apac ...

  9. Linux下设置定期执行脚本

    下面针对的是非ubuntu环境,会在文章末尾介绍ubuntu的一些区别. 在Linux下,经常需要定期的执行一些脚本从而来实现一些功能. 在Linux下我们用crontab来实现定期的执行脚本这个功能 ...

  10. Sql中判断"库、表、列,视图,存储过程"是否存在

    --判断数据库是否存在 IF EXISTS (SELECT * FROM MASTER.sys.sysdatabases WHERE NAME = '库名') PRINT 'exists ' else ...