PHP Cookie和Session

计应134(实验班) 郑寿奎

Cookie

        Cookie是一种在客户浏览器端存储数据并以此来跟踪和识别用户的机制

       注意:

              setcookie()函数定义一个和其余HTTP头一起发送的Cookie,它必须最先输出,在任何脚本输出之前包括<html>和<head>标签。
              如果在setcookie()函数之前有任何的输出,那么setcookie就会失败并返回false。因此本程序不能添加标题,否则程序出错。

一、创建Cookie

         格式:setcookie("名字",'值',[过期时间,路径,有效域名,是否安全通过HTTPS(1或0)])         //[ ]里面的是可选项

     例:

       <?

          setcookie("name",'abc');

          setcookie("pass",'123',time+60);         //有效时间为60秒

       ?>

       注意:PHP区分大小写

二、读取Cookie

          格式:$_COOKIE["名字"]                //这里的名字与上面创建时的名字一样

    例:

          <?php
              if(!isset($_COOKIE["name"]))         //判断Cookie文件是否存在
                {
              echo "Cookie不存在";
                 }
              else{
              echo "name的值为:".$_COOKIE["name"];             //获取Cooike的值
                }
           ?>

运行结果如下图:

                   

三、删除Cookie

      删除Cookie有二种方法:

                 1.在浏览器中手动删除Cookie

                 2.使用setcookie()函数删除Cookie

         格式:setcookie("名字","",time()-1)            //失效时间设置为当前时间减一秒,即马上过期。也可以直接设置为0

    

如果创建Cookie不设置失效时间,那么只有关闭浏览器,Cookie就会自动消失

Session

        Session(会话)指有始有终的一系列动作/消息,用于保存值

      启动会话→注册会话→使用会话→删除会话

一、启动

         session_start();               //一开始就要启动

二、注册(赋值)

         $_SESSION["名字"]=null;            //先启动,在定义一个名字并赋值为空

三、使用

       直接用 $_SESSION['名字']   使用,要么赋值给别人,要么别人赋值

        $变量=$_SESSION['名字'];

        $_SESSION['名字']=值;

四、删除

       删除单个

           unset($_SESSION['名字']);

       删除多个

           $_SESSION=array();

       删除当前

            session_destroy();

 五、Session设置时间

            1) session_set_cookie_params()

                  <?php

                       $time=1*60;               //设置时间

                       session_set_cookie_params($time);

                       session_start();                          //启动Session

                       $_SESSION["name"]='abc';

                   ?>

       注意:session_set_cookie_params()必须在session_start()之前调用

            2) setcookie()

                    <?php

                            session_start();

                            $time=1*60;

                             setcookie(session_name(),session_id(),time()+$time);

                             $_SESSION['name']='abc';

                     ?>

          注意:session_name是Session的名称,session_id是判断判断客户端用户的标识

六、验证登录

       用Session验证登录

           1)登录界面 index.php

               <script language="javascript">
                     function check(form){
                          if(form.name.value==""){alert("请输入用户名");return false;}
                          if(form.pass.value==""){alert("请输入密码"); return false;}
                          form.submit();
                      }
               </script>
               <form name="a" method="post" action="shenzhi.php">
                       <input type="text" name="name" />
                       <input type="password" name="pass" />
                       <input type="submit" name="Submit" value="登录" onClick="return check(form);" />
                       <input type="reset" name="Reset" value="重置" />
                 </form>

运行结果如图:

          如果用户名和密码没有输入就会出现提示框

         2)把用户名和密码保存在Session里 shenzhi.php

              <?php

                   session_start();          //启动
                   $_SESSION["name"]=$_POST['name'];       // 保存
                   $_SESSION["paw"]=$_POST['pass'];
                   header("location:huoqu.php");           //自动跳转
             ?>

         3)显示Session里的值 huoqu.php

             <?php

                  session_start();         //启动
                  if(isset($_SESSION["name"])) {
                       echo "用户名为:".$_SESSION["name"]."<br>";      //显示值
                       echo "密码为:".$_SESSION["paw"]."<br>";
                       }
                   else{
                       echo "没有值";
                       }
               ?>
              <a href='delect.php'>注销</a>

         4)删除Session delect.php

             <?php

                    session_start();      //启动
                    unset($_SESSION["admin"]);      //删除
                    unset($_SESSION["paw"]);
                    header("location:index.php");       //自动跳转
               ?>

当输入用户名:admin和密码:123运行结果如下图:

原文地址:https://www.cnblogs.com/ZSK991656110/p/4949728.html