zoukankan      html  css  js  c++  java
  • 前端PHP入门-034-Session技术-掌握级别

    而Session是通过将数据保存在服务器端来实现保持连接的。我们通过一个例子来了解session的机制。

    我们去饮料店买饮料,下单以后服务员会给我们一个号码牌,然后你走到一旁,服务员并不认识你是谁,如果你想拿到你的饮料,你必须提供你的号码牌给服务员才可以,服务员通过号码牌来查记录,来确认你是顾客,确认你点了什么饮料,然后才会把你点的饮料给你。

    了解了session原理,再回到Web技术中,我们有2种方法让客户端拿到“号码牌”,一种是通过cookie,一种是通过把值嵌入网页传给客户端。我们也有2种方法来让客户端把号码牌传给服务器来拿属于自己的资料,一种是cookie,一种是标准的Query String/POST。

    PHP中使用session

    了解了session的原理后,我们来学习如何在PHP中使用session。

    1.开启session
    首先我们要开启session,那么第一个要学习的函数就是
    bool session_start()了,这个函数没有参数。在php文件的开始使用

    1. session_start();

    就可以启用新会话或者重用现有会话了。

    2.添加session数据
    开启会话之后,那么在接下来的处理中,我们就可以使用SESSION_SESSION变量是个数组。当我们要把信息存入session的时候应该这么写:

    1. $_SESSION['userName'] = 'wang';

    3.读取session数据
    读取很简单,就像我们使用数组一样,如下:

    1. $userName = $_SESSION['userName'];

    当然也可以 $_SESSION['userName'] 来用。和数组一样的使用。

    **4.销毁session数据******
    我们可以使用很多种方式来销毁session数据。

    a) unset函数

    我们通过使用类似

    1. unset($_SESSION['XXX']);

    来销毁session中的 XXX 变量。PS:请不要!请不要!请不要unset(SESSION),使_SESSION这个变量!!!

    b) 空数组赋值给session变量

    1. $_SESSION = array();

    之前我们说过SESSOIN_SESSION变量中的值销毁。

    c) session_destory() 函数

    这个函数会销毁当前会话中的全部数据,并结束当前会话。但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。

    5.通过session来检查用户是否登陆和一个简单的购物车例子

    6.session的扩展:默认session存储在哪里。

    在php.ini配置文件中有这么一行 session.save_handler = files,
    files : 说明了php默认的是用文件读写的方式来保存session的。那么在哪个目录呢?继续看。session.save_path = "/tmp",

    这一行前面有个 ; ,说明是被注释的,不过即便这样,php默认的
    session 也是保存在这里的,/tmp目录。上图:
    document/2015-08-31/55e44c61f3733从图中我们可以看到确实在这个目录下面,我们顺便看看里面的内容

    document/2015-08-31/55e44c8eb3e27我的写入session的语句是:
    SESSION[as]=as;as_SESSION['as']中的as,|后面的s表示的是这是一个字符串类型的数据,2表示的是这个字符串所占的字节数,最后双引号引起来的是值as。

    PS:还可以自己动手试试存数字的话,|后面显示什么字母。还有,你还可以试试如果你存中文的话,字节数是多少?自己试!别看了!我不会告诉你的!!!





  • 相关阅读:
    NOIP201208同余方程
    NOIP模拟赛 最佳组合
    NOIP模拟赛 拓展
    CF1253E Antenna Coverage(DP)
    LOJ6033「雅礼集训 2017 Day2」棋盘游戏 (博弈论,二分图,匈牙利算法)
    CF582E Boolean Function(DP,状态压缩,FMT)
    CF750G New Year and Binary Tree Paths(DP)
    Codeforces Round 596 题解
    AGC008E Next or Nextnext(组合计数,神奇思路)
    ARC082E ConvexScore(神奇思路)
  • 原文地址:https://www.cnblogs.com/pangxiansheng/p/8f7fe09c97777862c9194f1d6bc6c147.html
Copyright © 2011-2022 走看看