zoukankan      html  css  js  c++  java
  • PHP学习笔记:php会话处理(Cookie和session)

    Cookie的应用

    eg8-2.php  一个简单的例子,打印$_COOKIE数组的内容

    <?PHP//eg:8.2
        $value = "my cookie value";
    
        //发送一个简单的cookie
        setcookie("TestCookie",$value, time()+60*60*24*30);
    ?>
    
    <html>
    <body>
        <?PHP
            if (isset($_COOKIE["TestCookie"]))
                echo($_COOKIE["TestCookie"] . "<BR>");
            print_r($_COOKIE);
        ?>
    </body>
    </html>

    eg8-3.php  记录用户访问当前网页的次数

    <?PHP
        if(isset($_COOKIE["num"]))
            $num = $_COOKIE["num"];
        else
            $num = 0;
        $num = $num +1;
        setcookie("num",$num, time()+60*60*24*30);
        /*删除Cookie数据
        setcookie("num",$num, time()-3600);
        实际是将有效期设置为过去的时间
        */
    ?>
    
    <html>
    <body>
        <?PHP
            if($num >1)
                echo("你已是第" . $num . "次访问本站点了。");
            else
                echo("欢迎你首次访问本站。");
        ?>
    
    <BR><BR>下面是网页的正文<BR>
    </body>
    </html>

    ————————————————————————————————————————————————————————————————————————

    用户身份验证时使用cookie

    login.php

    <html>
    
    <head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>用户名</title>
    </head>
    <script language="javascript">
    function form_onsubmit(obj) 
    {   
      if(obj.txtUserName.value == "") {
        alert("请输入用户名");
           return false;
      }    
      if(obj.txtPwd.value == "") {
        alert("请输入密码");
        return false;
      }    
      return true;
    }
    </script>
    
    <body>
    
    <form name="form1" method="post" action="">
      <label></label>
    </form>
    <div align="center">
        <hr color="#000080" size="3" width="80%">
        <form method="POST" action="check.php">
            <table border="0" width="35%" id="table1" style="line-height: 100%; margin-top: 6; margin-bottom: 6">
                <tr>
                    <td>
                    <p style="margin-top: 12px; margin-bottom: 12px">用户名:</td>
                    <td>
                    <p style="margin-top: 12px; margin-bottom: 12px">
                    <input type="text" name="txtUserName" value="<?PHP echo($_COOKIE["username"]); ?>" size="20"></td>用户信息
                    <!--添加从Cookie中读取用户名信息的功能-->
                </tr>
                <tr>
                    <td>
                    <p style="margin-top: 12px; margin-bottom: 12px">密码:</td>
                    <td>
                    <p style="margin-top: 12px; margin-bottom: 12px">
                    <input type="password" name="txtPwd" value="<?PHP echo($_COOKIE["password"]); ?>" size="20">
                    <!--添加从Cookie中读取密码信息的功能-->
                    <input name="checkboxCookie" type="checkbox"  checked>
                    <label>保留用户信息一年</label></td>
                </tr>
                <tr>
                    <td colspan="2">
                    <p align="center" style="margin-top: 12px; margin-bottom: 12px">
                      <input type="submit" value="登 录" name="B1" style="font-size: 11pt; font-family: 宋体" onClick="return form_onsubmit(this.form)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <input type="reset" value="重 置" name="B2" style="font-family: 宋体; font-size: 11pt"></td>
                </tr>
            </table>
            <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </p>
        </form>
        <p> </div>
    
    </body>
    
    </html>
    View Code

    check.php

    <?PHP
      //取输入的用户名和密码
      $UID=$_POST['txtUserName'];
      $PWD=$_POST['txtPwd'];
    
      // 验证用户名和密码
     if($UID == "admin" and $PWD == "pass") 
     {
       echo("您已经登录成功,欢迎光临。");
       if($_POST['checkboxCookie']== "on")
       {
             setcookie("username",$UID,  time()+60*60*24*365);
             setcookie("password",$PWD,  time()+60*60*24*365);   
       }
     }
     else
       echo("登录失败,请返回重新登录。");
    ?>

    ————————————————————————————————————————————————————————————————————————


     

    Session

    eg8-5.php  开始会话并输出Session ID和Session的名字

    <?PHP
        session_start();
        echo("session_id()=" . session_id());
        echo("<br>");
        echo("session_name()=" . session_name());
    ?>

    eg8-6.php  使用全局数组$_SESSION存取Session数据的例子

    <?PHP
        //全局变量数组$_SESSION设置和获取Session数据,可在程序的任何位置访问它
        //error_reporting(0); 
        date_default_timezone_set('Asia/Chongqing');//系统时间差8小时问题
        //开始会话,在访问数组$_SESSION之前调用
        session_start();
    
        if($_SESSION["last_visit"]) {
            echo "你上次访问的时间为: ";
            echo date("Y-m-d , H:i:s",$_SESSION["last_visit"]);
            echo "<br>";
            echo "访问次数: ".$_SESSION["num_visits"];
        }
        else
            echo "这是你的第一次访问。";
    
        $_SESSION["last_visit"] = time();
        $_SESSION["num_visits"]++;
    
        /*
        在不关闭浏览器的情况下,访问其他网站再返回,Session会被保留。而关闭浏览器,Session数据就会丢失
        */
    ?>

    eg8-8.php  使用unset()函数释放会话变量的例子--删除会话变量

    <?PHP
        //使用unset()函数释放会话变量
        //开始会话
        session_start();
        $_SESSION["num_visits"]++;
    
        unset($_SESSION["num_visits"]);
        echo($_SESSION["num_visits"]);
    ?>

    eg8-9.php  使用session_unset()函数销毁会话的例子

    <?PHP
        //使用session_unset()函数销毁会话
        //开始会话
        error_reporting(0); 
        session_start();
    
        //print_r($_SESSION);
    
        $_SESSION['user'] = 'admin';
        session_unset();
        if($_SESSION['user'])
            echo("用户名:" . $_SESSION['user'] . "<br> session_id=" . session_id());
        else
            echo("no username found" . "<br> session_id=" . session_id());
        $_SESSION['user'] = 'admin';
    
        /*
        显示结果为:
        no username found
        session_id=hufnddl8v5lpm6j3bar1m3j8u5
    
        由此我们可知:session_unset()没有释放(销毁) Session ID
        */
    ?>

    eg8-10.php  使用session_destroy()函数销毁会话的例子

    <?PHP
        /*
        使用session_destroy()函数销毁会话,
        可以删除当前用户对应的session文件,
        释放sessionID,内存中$_SESSION变量内容依然保留。
        */
        //开始会话
        //error_reporting(0); 
        session_start();
    
        //print_r($_SESSION);
    
        $_SESSION['user'] = 'admin';
        session_destroy();
        echo("用户名:" . $_SESSION['user']);
        echo("<br> session_id=" . session_id());
        
    
        /*
        显示结果为:
        用户名:admin
        session_id=
        */
    ?>

     截图:

  • 相关阅读:
    POJ 1077 Eight(单向搜索)
    HDU 1943 Ball bearings(简单数学问题)
    POJ 2632 Crashing Robots(水模拟)
    HDU 1047 Integer Inquiry(高精度加法)
    POJ 1068 Parencodings(模拟)
    [转]修改 ibatis 分页机制(ORACLE物理分页)
    实现判断机器大小端的两种方法
    linux环境下库的制作和升级
    fork函数的理解1
    如何求一个文件的行数?
  • 原文地址:https://www.cnblogs.com/yzmb/p/4622098.html
Copyright © 2011-2022 走看看