您的位置:澳门402永利com > 澳门402永利com网络 > _COOKIE简单应用实例,php使用Cookie实现和用户会话

_COOKIE简单应用实例,php使用Cookie实现和用户会话

发布时间:2019-09-30 16:12编辑:澳门402永利com网络浏览(112)

    在php教程中,要用 setcookie 函数来注册 cookie 变量,你上边的代码未有挂号 cookie 变量。怎么大概送得过去呢。正确的写法如下:

    本文实例陈述了php使用Cookie达成和顾客会话的秘诀。分享给大家供大家参照他事他说加以考察。具体分析如下:

    */
    $status=0;                //定义状态
    if(isset($_cookie['mytstcky'])&&($_cookie['mytstcky']=="chocchip")) $status=1; //假若已经设置变量
    if(!isset($_get['cchk']))             //若无安装变量
    {
      setcookie("mytstcky","chocchip");          //发送cookie信息
      header("location:$php_self?cchk=1");         //发送标头
      exit;                //结束php代码
    }
    ?>
    <html>
    <head><title>cookie check</title></head>
    <body bgcolor="#ffffff" text="#000000">
    cookie check status:
    <?php
    printf('<font color="#%s">%s</font><br>;',$status ? "00ff00" : "ff0000",$status ? "passed!" : "failed!");               //依据条件输出差别内容
    ?>
    </body>
    </html>

    PHP 包涵了重重的函数,能够用来管理和笔录客户音讯,满含简单的 cookie 和整个的顾客会话。会话使用 PHP 语言内建的本领,使得保存情况如同引用超全局变量这样轻巧。

    1.Cookie 简介

    小编们能够和 PHP 脚本一齐利用 cookie 来存款和储蓄一些有关客户的一点都不大的音信。 Cookie 是由客商浏览器存款和储蓄的一点点数量,它和一个来源服务器或脚本的伸手一致。通过三个客户的浏览器,二个单个的主机能够央浼保存 20 个 cookie 。每一种 cookie 包含一个名字、值和过期日期,以及主机和路径消息。三个单个的 cookie 的尺寸限制是 4KB 。

    在安装了 cookie 之后,独有发出央求的主机可以读取数据,那就保障了客户隐秘获得尊重。其他,客户能够陈设自身的浏览器通过他经受可能拒绝全体cookie 的伸手。由此, cookie 应该适本地行使,况兼在未有设计达成警告客户的贰个意况中,不应当作为一个着力要素而借助于。

    一经 Web 浏览器配置为存款和储蓄 cookie ,它将维持基于 cookie 的音信直到过期日期。若是客户选取浏览器浏览符合 cookie 的不二等秘书技和域的别的页面,它将会把 cookie 重新发送给服务器。随后,贰个 PHP 脚本能够访问 cookie , cookie 在蒙受变量 HTTP_高管KIE 中仍旧当做 $首席营业官KIE 超全局变量的一有的,大家得以用 3 种格局来拜候它们:

    复制代码 代码如下:

    echo $_SERVER["HTTP_COOKIE"];
    echo getenv("HTTP_COOKIE");
    echo $_COOKIE["vegetable"];

    2.应用 PHP 设置三个 cookie

    大家得以用二种办法在一个 PHP 脚本中装置三个 cookie 。首先,用 header() 函数来设置 SetCookie 标头。 Header() 函数要求三个字符串,该字符串随后将富含到服务器响应的标尾部分。由于标头会为您活动发送, header() 必得在发送给浏览器的热河输出在此之前调用。

    复制代码 代码如下:

    head("Set Cookie:vegetable=artichoke; expires=Tue,07-Mar-06 14:39:58 GMT;path=/;domain=yourmain.com");

    就算没什么困难,这种设置 cookie 的措施只怕须求我们编辑多少个函数来创设标头字符串。像那么些例子这样格式化日期并对名 / 值对实行 ULacrosseL 编码并非特意不方便的职分,但它依然一项重复性的办事,因为 PHP 提供了二个函数来成功那么些,这就是 setcookie() 。

    Setcookie() 函数所做的政工就像是它的名字所体现的那样,它输出多少个Set-Cookie 标头。因而,它应该在另外别的剧情发送给浏览器以前调用。那么些函数接受 cookie 名字、 cookie 值、 UNIX 时间戳格式的逾期日期、路线、域,以及二个子弹头,借使 cookie 仅通过三个安全的连日发送的话,这一个寸头的值设置为 1. 除了第七个参数以外,那么些函数的有所参数都以可选的。

    复制代码 代码如下:

    <?php
    setcookie ( "vegetable" , "artichoke" , time ()+3600, "/" , ".yourdomain.com" , 0);
     
    if ( isset ( $_COOKIE [ "vegetable" ])){
        echo "<p>Hello again, you have chosen: " . $_COOKIE [ "vegetable" ]. ".</p>" ;
    }
    else {
        echo "<p>Hello you. This may be your first visit.</p>" ;
    }
    ?>

    哪怕我们在剧本第二次运维的时候设置 cookie , $_COOKIE["vegetable"] 变量也不会在这时成立。由于唯有当浏览器将三个 cookie 发送到服务器的时候,才会读取它,因而,直到顾客重新访谈那个域内的二个页面的时候,大家本领够读取它。
    标准地讲,要刨除一个 cookie ,只须要调用带有 cookie 名字参数的 setcookies():
    setcookie("vegetable");
    但是,这种艺术并不总是奏效,况兼不能够借助这种格局。相反,要刨除八个cookie ,使用叁个分明已经晚点的时刻来安装 cookie ,这种办法是最安全的:
    Setcookie("vegetable", "", time()-60, "/", "yourdomain.com", 0);
    还要保险传递给 setcookie() 与最早安装 cookie 时候所利用的是同等的门路、域和安全参数。

    3.会话函数大概浏览

    当一个来访的客人访谈二个支持会话的页面,要么分配一个新的标志符,要么这一个客户和事先的访谈已经确立的一个标志符重新关联。任何已经和对话相关联的变量,都经过 $_SESSION 超全局变量可供你的代码应用。
    对话状态平时存款和储蓄在一个不经常文件中,固然你能够动用一个名字为session_set_save_handler() 的函数完成数据仓库储存款和储蓄。

    4.从头贰个会话

    复制代码 代码如下:

    <?php
    session_start ();
    echo "<p>Your session ID is " . session_id (). "</p>" ;
    ?>

    5.应用会话变量

    在每贰个 PHP 文书档案中做客三个独一的对话标记符只是会话功效的发端。当叁个会话运行后,我们得以在超全局变量 $_SESSION 中积累放肆五个变量,然后在别的辅助会话的页面上访谈它们。

    上边程序向超全局变量 $_SESSION 加多了三个变量:

    复制代码 代码如下:

    <?php
    session_start ();
    $_SESSION [ "product1" ] = "Sonic Screwdriver" ;
    $_SESSION [ "product2" ] = "HAL 2000" ;
    echo "The products have been registered." ;
    ?>

    在客户移动到几个新的页面在此以前,上面程序的美妙之处不会反映出来。上边包车型地铁主次成立了四个独自的 PHP 脚本,那些剧本访谈存款和储蓄在超全局变量 $_SESSION 中的变量。

    复制代码 代码如下:

    <?php
    session_start ();
    echo "Your chosen products are:" ;
    echo "<ul>" ;
    echo "<li>" . $_SESSION [ "product1" ]. "</li>" ;
    echo "<li>" . $_SESSION [ "product2" ]. "</li>" ;
    echo "</ul>" ;
    ?>

    下列程序清单成立壹个表单,它同意叁个客户来摘取八个产品。大家得以选取会话变量来创设多少个着力的购物车。
    arraysession.php:

    复制代码 代码如下:

    <?php
    session_start ();
    ?>
    <html>
    <head>
    <title> Storing an array with a session </title>
    </head>
    <body>
    <h1> Product Choice Page </h1>
    <?php
    if ( isset ( $_POST [ "form_products" ])){
        if (! empty ( $_SESSION [ "products" ])){
           $products = array_unique (
           array_merge ( unserialize ( $_SESSION [ "products" ]),
           $_POST [ "form_produces" ]));
        }
        else
        {
           $_SESSION [ "products" ] = serialize ( $_POST [ "form_products" ]);
        }
        echo "<p>Your products have been registered!</p>" ;
    }
    ?>
    <form method = "POST" action = " <?php echo $_SERVER [ "PHP_SELF" ]; ?> " >
    <p><strong> Select some products: </strong><br>
    <select name = "form_product[]" multiple = "multiple" size = "3" >
    <option value = "Sonic Screwdriver" > Sonic Screwdriver </option>
    <option value = "Hal 2000" > Hal 2000 </option>
    <option value = "Tardis" > Tardis </option>
    <option value = "ORAC" > ORAC </option>
    <option value = "Transporter bracelet" > Transporter bracelet </option>
    </select>
    <p><input type = "submit" value = "choose" /></p>
    </form>
    <p><a href = "session1.php" > go to content page </a></p>
    </body>
    </html>

     
    session1.php:

    复制代码 代码如下:

    <?php
    /*
      * Created on 2011-1-19
      *
      * To change the template for this generated file go to
      * Window - Preferences - PHPeclipse - PHP - Code Templates
      */
      session_start ();
    ?>
    <html>
    <head>
    <title> Accessing session variables </title>
    </head>
    <body>
    <h1> Content Page </h1>
    <?php
    if ( isset ( $_SESSION [ "products" ])){
        echo "<strong>Your cart:</strong><ol>" ;
        foreach ( unserialize ( $_SESSION [ "products" ]) as $p ){
           echo "<li>" . $p . "</li>" ;
        }
        echo "</ol>" ;
    }
    ?>
    <p><a href = "arraysession.php" > return to product choice page </a></p>
    </body>
    </html>

    6.在查询字符串中传送会话 ID

    7.销毁会话和重新恢复设置变量

    8.在贰个包含注册客户的条件中运用会话

    愿意本文所述对我们的php程序设计有所扶助。

    您或然感兴趣的作品:

    • php通过会话调控达成身份验证实例
    • PHP入门教程之会话调整技艺(cookie与session)
    • PHP会话调节:Session与Cookie详解
    • php中session_id()函数详细介绍,会话id生成进程及session id长度
    • PHP session会话的安全性解析
    • 正如全的PHP 会话(session 时间设定)使用入门代码
    • 利用PHP会话(Session)实现用户登录功效
    • php轻松的会话类代码
    • php完结session自定义会话管理器的章程
    • PHP会话调控实例深入分析

    本文由澳门402永利com发布于澳门402永利com网络,转载请注明出处:_COOKIE简单应用实例,php使用Cookie实现和用户会话

    关键词: