• PHP中Cookie和Session


    PHP中Cookie和Session

    计应134班凌豪

    Cookie

    1.什么是Cookie

      Cookie是一种在客户浏览器端村粗数据并以此来跟踪和识别用户的机制,简单的说Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被web服务器读取。Web服务器可以通过Cookie包含的信息来筛选或维护这些信息,以判断在HTTP中传输的状态。

      Cookie文本文件的命令格式如下:

      用户名@网站地址【数字】.txt

    2.如何创建Cookie

      在PHP中通过setcookie()函数创建Cookie,语法格式如下:

    bool setcookie(string name,【string value【int exprie【,string path【,string domain【,int secure】】】】】)  其基本参数说明及举例如下:

    参数

    说明

    举例

    name

    Cookie的变量名

    可以通过$_COOKIE["cookiename"]调用变量名为cookiename的Cookie

    value

    Cookie变量的值,该值保存在客户端,不能用来保存敏感数据

    可以通过$_COOKIE["values"]获取名为values的值

    expire

    Cookie的失效时间,expire是标准的UNIX时间标记,可以用time()函数或mktime()函数获取,单位为秒

    如果不设置Cookie的失效时间,那么Cookie将永远有效,除非手动将其删除

    path

    Cookie在服务器端的有效路径

    如果该参数设置为“/”,则它在整个domain内有效,如果设置为“/11”,它在domain下的/11目录及子目录内有效。默认是当前目录

    domain

    Cookie有效的域名

    如果要使Cookie在mrbccd.com域名下的所有子域都有效,应该设置为mrbccd.com

    secure

    指明Cookie是否仅通过安全的HTTPS,值为0或1

    如果值为1,则Cookie只能在HTTPS连接上有效;如果值为默认值0,则Cookie在HTTP和HTTPS连接上均有效

    3.读取Cookie

       在PHP中可以直接通过超级全局数组$_COOKIE[]来读取浏览器端的Cookie值

    <?php
    date_default_timezone_set("Etc/GMT-8");
    if(!isset($_COOKIE["visittime"])){                                    //如果Cookie不存在
         setcookie("visittime",date("y-m-d H:i:s"));                     //设置一个Cookie变量
        echo "欢迎您第一次访问网站!"."<br>";                            //输出字符串
    }else{                                                                //如果Cookie存在
        setcookie("visittime",date("y-m-d H:i:s"),time()+60);             //设置带Cookie失效时间的变量
        echo "您上次访问网站的时间为:".$_COOKIE["visittime"];            //输出上次访问网站的时间
        echo "<br>";                                                    //输出回车符
    }
        echo "您本次访问网站的时间为: ".date("y-m-d H:i:s");            //输出当前的访问时间
    ?>

    4.删除Cookie

      当Cookie被创建后,如果没有设置它的失效时间,其Cookie文件会在关闭浏览器时被自动删除。如果要在关闭浏览器之前删除Cookie文件,方法有两种:一种是使用setcookie()函数删除,另一种是在浏览器中手动删除Cookie。其基本方法如下:

    使用setcookie()函数删除Cookie:

      将Cookie的过期时间设置为当前时间减1秒,代码如下:

      setcookie("name", "", time()-1);

    在浏览器中手动删除Cookie

      在使用Cookie时,Cookie自动生成一个文本文件存储在IE浏览器的Cookies临时文件夹中。

      如果Cookie不设定时间,就表示它的生命周期为浏览器会话的期间,只要关闭IE浏览器,Cookie就会自动消失。这种Cookie被称为会话Cookie,一般不保存在硬盘上,而是保存在内存中。 如果设置了过期时间,那么浏览器会把Cookie保存到硬盘中,再次打开IE浏览器时会依然有效,直到它的有效期超时。

    5.Session管理

       Session译为“会话”,其本义是指有始有终的一系列动作/消息,如打电话时从拿起电话拨号到挂断电话这一系列过程可以称为一个Session。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统所经过的时间。因此,Session实际上是一个特定的时间概念。

    6.创建会话

    在PHP中有两种方法可以创建会话。

      通过session_start ()函数创建会话。语法格式如下:

      bool session_start(void) ;

      通过session_register()函数创建会话。

       session_register()函数用来为会话登录一个变量来隐含地启动会话,但要求设置php.ini文件的选项,将register_globals指令设置为on,然后重新启动Apache服务器。

    7.注册会话

      启动会话,创建一个Session变量并赋予空值,代码如下:

    <?php

    session_start();  //启动Session 

    $_SESSION["admin"] = null; //声明一个名为admin的变量,并赋空值 

    ?>

    8.使用会话

    判断存储用户名的Session会话变量是否为空,如果不为空,则将该会话变量赋给$myvalue,代码如下:

    <?php

    if ( !empty ( $_SESSION['session_name']))  //判断用于存储用户名的Session会话变量是否为空

        $myvalue = $_SESSION['session_name'] ;//将会话变量赋给一个变量$myvalue

    ?>

    9.删除会话

      删除单个会话

      注销$_SESSION['user']变量,可以使用unset()函数,代码如下

    unset ( $_SESSION['user'] ) ;

      删除多个会话

      如果想要一次注销所有的会话变量,可以将一个空的数组赋值给$_SESSION,代码如下:

    $_SESSION = array() ;

      结束当前会话

      如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话中的所有资源,彻底销毁Session,代码如下:

    session_destroy() ;

  • 相关阅读:
    Druid源码解析(六):PreparedStatementPool源码及使用场景分析 lcl
    PyScript:让Python在HTML中运行
    Java 16 新特性:record类
    Java 17 新特性:switch的模式匹配(Preview)
    基于阿里云 ASK 的 Istio 微服务应用部署初探
    Vue快速入门
    架构设计分析
    springbatch相关sql创建语句 mysql
    mysql多表关联时可能出错的地方,如搜索出的记录数据变少了。
    https://blog.csdn.net/hualusiyu/article/details/86498452?spm=1001.2014.3001.5502
  • 原文地址:https://www.cnblogs.com/linghao713/p/4910283.html
Copyright © 2020-2023  润新知