1session是服务器端技术,利用这个技术,服务器在运行时可以为每个用户的浏

 

览器创建一个共/独享的session文件,由于session为用户浏览器独享,所以用户

 

再去访问服务器中的其他web共享资源时,其他web资源再从用户各自的session

 

取出数据为用户服务

   当用户打开浏览器,访问某个网站时操作session时,服务器就会为该浏览器分

 

配一个保存session信息的文件,该文件被这个浏览器独自访问

 

 

2、细节问题

   2.1  默认情况下session文件将会保存在c:/window/temp

   2.2   session数据默认1440s24分钟)失效;这个失效时间可以通过php的配

 

        php.ini文件设置【session.gc_maxlifetime=设置的时间(默认以秒   

 

      为单位);】         这个时间也可以成为session的生存时间,它的意思

 

session在连续的         1440s内不使用就会失效,但一 旦被使用,这个时间

 

就会重新从0开始计算

  2.3  修改session文件的存放路径,在php.ini文件修改:

       ;session.save_path="/tmp"的下一行输入

        session.save_path="自定义路径"【注意这句代码前不能有分号;appache

 

重启才生效】

  2.4  web开发中,服务器可以为每个用户浏览器创建一个超全局变           

 

 量,$_SESSION,注意:一个浏览器独占一个$_SESSION(默认情况下            

 

)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独

 

占的session文件中,当用户使用浏览器访问其他php页面时,其他php页面可以从

 

$_SESSION中取出该用户数据,为用户服务

 

 

3session的基本用法:

 

 3.1 session必须先初始化才能使用

        session_start();

        session文件可以存放多个键值对key<=>value,但键值不能相同

        如果要获取的session数据是对象时一定要先声明一下这个对象的类的信

 

      一个会话对应一个session,浏览器从打开到关闭是一个session

 3.2如何保存session数据

   <?php

        //1、初始化session

          session_start();

        //name是键值key;shunpingvalue

           $_SESSION['name']="shunping";         //session文件中可以保存

 

doubleinteger

      //boolarrayobject类型的数据       

         $_SESSION['age']=100;//保存integer bool

         $-SESSION['isboy']=true;

         //保存;数组

         $arr=array('beijing','tianjjing','nanjing');

         $_SESSION['ARR']=$arr;

         //保存一个对象

        class Dog{

                  private $name;

                  private $age;

                  private $intro;

            function _construct($name,$age,$intro){

                  $this->name=$name;

                  $this->age=$age;

                  $this->intro=$intro;

                    }

                 }

                  $dog=new Dog('欢欢','5','他是一只可爱的小狗');

                  $_SESSION['MYDOG']=$dog;

                  echo "保存成功!";

 

        ?>

         

 3.3 如何获取session数据

            <?php

                 //初始化

               session_start();

               //获取所有session数据并输出

               print_r($_SESSION);

               //通过键值获取对应的某个session

               echo $_SESSION['键值'];

 

               //获取数据是对象的session数据时一定要先声明一下类的定义

                  //先声明一下类的定义

                  class Dog{

                  private $name;

                  private $age;

                  private $intro;

            function _construct($name,$age,$intro){

                  $this->name=$name;

                  $this->age=$age;

                  $this->intro=$intro;

                    }

 

                   public function getName(){

                       return $this->name;

 

                       }

                 }

                 

 

      

              $object=$_SESSION['键值'];

        echo $object->getName();

 

           ?>

 3.4 更新session数据

       session_start();

       $_SESSION['键值']=value;//根据键值去更新对应的值

 

 3.5 手动删除session数据

       session_start();

       //删除某个键值对

       unset($_SESSION['键值']);

       //删除与这个浏览器对应的所有session文件,一个会话对应一个session

 

,浏览器从打开到关闭是一个session

      session_destrory();

 

 3.6 系统删除session数据

        session数据默认1440s24分钟)失效;这个失效时间可以通过php的配  

 

          php.ini文件设置【session.gc_maxlifetime=设置的时间(默认以   

 

        秒为单位);】这个时间也可以成为session的生存时间,它的意思      

 

     session在连续的 1440s内不使用就会失效,但一 旦被使用,这个        

 

   时间就会重新从0开始计算

 

 

4sessioncookie的区别:

     4.1 cookie是把用户的数据写下用户的浏览器。

     4.2 session是把用户的数据写在用户独占的$_SESSION中,存在服务器的某  

 

       个路径

     4.3 $在使用$_SESSION前要保证session被初始化,具体的方法有:

          4.3.1 先调用session_start();

          4.3.2配置php.ini文件中的 session.auto_start=1(不推荐,会影响效

 

);

     4.4 服务器实现,一个session文件一次会话服务的原理:

     

5、每个session文件都有自己的sessionid;所以

   5.1 获取sessionid的方法:$sessionid=session_id();

   5.2 设置当前session文件的sessionid的方法:session_id(“id”);

   5.3  要创建一个自己定义idsession文件,代码如下

        session_id(“id”);

        session_start();