博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP会话技术-Session

Posted on 2013-05-09 15:30  Step at a time  阅读(591)  评论(0编辑  收藏  举报

Session 是服务端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session文件,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时(前提会话没有结束),其他web资源再从用户的各自session中取出数据为用户服务。

Session 是最重要的用户行为跟踪技术(防止用户非法登录/验证码等)。

默认情况下session文件被保存在C:/Windows/temp 目录下。

下面是对session的CRUD的操作

1、创建session

<?php

    //创建session
    //初始化session
    session_start();
    //保存数据
    $_SESSION['name']="pawm";
    //session 文件中可以保存dobule,integer,string,bool, array,object

    //保存bool integer
    $_SESSION['age']=20;
    $_SESSION['isBoy']=true;

    $_SESSION['arr']=array("北京","张三","xiaoming");

    //保存对象到session 中
    class Dog{
        private $name;
        private $age;
        private $intro;

        public function __construct($name,$age,$intro){
            
            $this->name=$name;
            $this->age=$age;
            $this->intro=$intro;
        }
    }

    $dog1=new Dog("狗狗",5,"很听话的狗");
    $_SESSION['dog1']=$dog1;
    echo "保存成功";
?>

 要点:

  1. 1、保存的数据格式:name|s:4:"pawm";age|i:20;isBoy|b:1;

  name:就是key

  s:表示数据类型

  4:表示数据大小

  1. 2、session 中可以保存的数据类型是:dobule,integer,string,bool, array,object

2、取出session操作

<?php
    
    require_once "Dog.class.php";
    echo "<pre>";
    //使用到session的地方必须要初始化session
    session_start();
    //取出全部
    print_r($_SESSION);

    echo "</pre>";

    //单个取出
    //$name=$_SESSION['name'];
    if(!empty($_SESSION['name'])){
        echo "名字是:".$_SESSION['name'];
    }else{
        echo 'name没有了<br>';
    }
    if(!empty($_SESSION['age'])){
        echo "年龄是:".$_SESSION['age']."<br>";;
    }else{
        echo 'age没有了<br>';
    }
    //echo $_SESSION['isBoy'];  //输出1
    
    if(!empty($_SESSION['arr'])){

        $arr=$_SESSION['arr'];
        foreach($arr as $key=>$val){
            echo "$val";
        }
    }else{
        echo 'arr没有了<br>';
    }
    echo "<br>";
    //取出对象的实例的时候要把类的信息引入进来,不然出现错误

    if(!empty($_SESSION['dog1'])){
        $dog=$_SESSION['dog1'];
        //var_dump($dog);
        echo "<br>".$dog->show();
        //echo $dog->name;
        //echo '名字是'.$name."年龄是".$age;
    }else{
        echo 'dog没有了<br>';
    }
?>

 

3、更新session

<?php

    //更新session

    session_start();
    //更新name
    $_SESSION['name']="小明";

    echo "更新成功";

?>

 4、删除session

<?php

    //删除session

    session_start();
    //单个删除,删除name
    //unset($_SESSION['name']);

    //删除全部
    session_destroy();
    echo "删除session成功";

?>