PHP初级学习之session

Session的理解

小结:

1. 计算器清楚访问者是谁,知道访问者何时启动程序,何时终止程序。

2. 在因特网上,服务器不知道访问者是谁以及访问者做了什么,因为HTTP地址不能维持状态。

3. 可以在服务器上存储用户信息以便随后使用,PHP session解决了2中的问题。

4. session为每个访问者创建了一个唯一的id(UID),并基于这个UID来存储变量。UID存储在cookie中,亦或通过URL进行传导。

5.PHP session变量用于存储相关用户的会话信息,或更改用户会话的设置。Session变量保存的信息是单一用户的,并且可供应用程序中的页面使用。

6.会话信息是临时的,在用户来开网站后将被删除。如果需要永久存储信息,可以把数据存储在数据库中。

7. 关于会话的理解:当你运行一个应用程序时,你会打开它,做些更改,然后关闭它,这很像一次会话。

PHP Session的使用

1 开始PHP Session

(1)所谓开始PHP Session是指:在把用户信息存储到PHP session中之前,首先必须启动会话。

(2)如何开启PHP Session:在html标签之前使用用session_start()函数

2 存储Session变量

(1)使用PHP $_SESSION[]变量来存储和取回session变量

3 终结Session

(1)PHP中删除某些session数据,可以使用unset()或session_destroy()函数

    两者的区别:

    unset()函数用于释放指定的session变量,session_destroy()函数用于彻底终结session。

    需注意:

    I. session_destroy()将重置session,将会失去所有已存储的session数据。

    II. 要是session_destroy()起作用,应该在session_destroy()前使用session_unset()。

(2)示例

示例1:unset()方式删除某些session数据


<?php
<!-- lang: php -->
//start session 
<!-- lang: php -->
session_start();
<!-- lang: php -->
//store session data
<!-- lang: php -->
$_SESSION['username'] = 'lisan';
<!-- lang: php -->
if(isset($_SESSION['views'])){
<!-- lang: php -->
    $_SESSION['views'] = $_SESSION['views'] + 1;
<!-- lang: php -->
}else{
<!-- lang: php -->
    $_SESSION['views'] = 1;
<!-- lang: php -->
}
<!-- lang: php -->
?>
<!-- lang: php -->
<!DOCTYPE HTML>
<!-- lang: php -->
<html>
<!-- lang: php -->
    <head>
<!-- lang: php -->
        <meta charset="utf-8">
<!-- lang: php -->
        <title>session start and unset</title>
<!-- lang: php -->
    </head>
<!-- lang: php -->
    <body>
<!-- lang: php -->
        <?php 
<!-- lang: php -->
        //retrieve session data
<!-- lang: php -->
        echo "username is ".$_SESSION['username'].'<br>';
<!-- lang: php -->
        echo "Pageviews=".$_SESSION['views'];
<!-- lang: php -->

<!-- lang: php -->
        unset($_SESSION['views']);
<!-- lang: php -->
        echo '<br>the session var whose name is views has been released.';
<!-- lang: php -->

<!-- lang: php -->
        //if the $_SESSION['views'] exist?
<!-- lang: php -->
        if(isset($_SESSION['views'])){
<!-- lang: php -->
            echo '<br>Pageview = '.$_SESSION['views'];
<!-- lang: php -->
        }else{
<!-- lang: php -->
            echo '<br> sorry,the session views does not exist!
<!-- lang: php -->
            Please make sure that you spell is right!';
<!-- lang: php -->
        }
<!-- lang: php -->

<!-- lang: php -->
        //if the $_SESSION['username'] is eixt 
<!-- lang: php -->
        if(isset($_SESSION['username'])){
<!-- lang: php -->
            echo '<br>username is '.$_SESSION['username'];
<!-- lang: php -->
        }else{
<!-- lang: php -->
            echo "<br>sorry, this session does'nt exist! 
<!-- lang: php -->
                    Please make sure that the session name's spell is right.";
<!-- lang: php -->
        }
<!-- lang: php -->
        ?>
<!-- lang: php -->
    </body>
<!-- lang: php -->
</html>

示例2:session_destroy()方式重置session


<?php
<!-- lang: php -->
//start session 
<!-- lang: php -->
session_start();
<!-- lang: php -->
//store session data
<!-- lang: php -->
$_SESSION['username'] = 'lisan';
<!-- lang: php -->
if(isset($_SESSION['views'])){
<!-- lang: php -->
    $_SESSION['views'] = $_SESSION['views'] + 1;
<!-- lang: php -->
}else{
<!-- lang: php -->
    $_SESSION['views'] = 1;
<!-- lang: php -->
}
<!-- lang: php -->
?>
<!-- lang: php -->
<!DOCTYPE HTML>
<!-- lang: php -->
<html>
<!-- lang: php -->
    <head>
<!-- lang: php -->
        <meta charset="utf-8">
<!-- lang: php -->
        <title>session start and destroy</title>
<!-- lang: php -->
    </head>
<!-- lang: php -->
    <body>
<!-- lang: php -->
        <?php 
<!-- lang: php -->
        //retrieve session data
<!-- lang: php -->
        echo "username is ".$_SESSION['username'].'<br>';
<!-- lang: php -->
        echo "Pageviews=".$_SESSION['views'];
<!-- lang: php -->

<!-- lang: php -->
        session_unset();
<!-- lang: php -->
        session_destroy();
<!-- lang: php -->
        echo '<br>session has been reset.Now,all session datas has been destroyed.';
<!-- lang: php -->

<!-- lang: php -->
        if(isset($_SESSION['views'])){
<!-- lang: php -->
            echo '<br>Pageview = '.$_SESSION['views'];
<!-- lang: php -->
        }else{
<!-- lang: php -->
            echo '<br> sorry,the session views does not exist!
<!-- lang: php -->
            Please make sure that you spell is right!';
<!-- lang: php -->
        }
<!-- lang: php -->

<!-- lang: php -->
        if(isset($_SESSION['username'])){
<!-- lang: php -->
            echo '<br>username is '.$_SESSION['username'];
<!-- lang: php -->
        }else{
<!-- lang: php -->
            echo "<br>sorry, this session does'nt exist! 
<!-- lang: php -->
                    Please make sure that the session name's spell is right.";
<!-- lang: php -->
        }
<!-- lang: php -->
        ?>
<!-- lang: php -->
    </body>
<!-- lang: php -->
</html>

(3)示例运行结果

    示例1:

        username is lisan

        Pageviews=2

        the session var whose name is views has been released.

        sorry,the session views does not exist! Please make sure that you spell is right!

        username is lisan 

    示例2:

        username is lisan

        Pageviews=1

        session has been reset.Now,all session datas has been destroyed.

         sorry,the session views does not exist! Please make sure that you spell is right!

        sorry, this session does'nt exist! Please make sure that the session name's spell is right. 

你可能感兴趣的:(PHP初级学习之session)