• 2017.8.01


    一、sessio变量的应用实例。

    1、做个简单的登录界面,获取所需的PHP文件里面可以写有HTML

    <?php
    session_start();//必须先执行此句,前面不要有任何输出。
    header("Content-type:text/html;charset=utf-8");//解决中文乱码
    
    if(isset($_SESSION['username'])){
        header('location:user.php');//跳转函数,location后面为地址。
    }
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>用户登陆</title>
    </head>
    <body>
    <form action="deng.php" method="post"> 用户名:<input type="text" name="username" value="admin" /><br /> 密码:<input type="password" name="password" value="123456" /><br /> <input type="submit" value="提交" /> </form>> </body> </html>

    2、获取所得数值,并把其赋值给session变量。后台连接数据库验证所得值是否正确。

    <?php
    /** */
    session_start();//使用session变量就必须开启,
    header("Content-type:text/html;charset=utf-8");//解决中文乱码
    if(isset($_POST['username'])&&isset($_POST['password'])){
        //这里需要查询数据库,目前只做简单判断
        $username=$_POST['username'];
        $password=$_POST['password'];
    
        if($username=='admin'&&$password=='123456')//此处没有查询数据库,使用已知的值
    {
    //设置session $_SESSION['username']=$username; header('location:user.php'); //跳转到指定地方 }else{ echo "用户名和密码不匹配"; } }

    3、在其他页面使用session变量。在其他页面通过之前设置好的session变量$_SESSION['username']从数据库获取其他所需数值。

    <?php
    /** */
    session_start();
    header("Content-type:text/html;charset=utf-8");//解决中文乱码
    

    if(isset($_SESSION['username'])){ echo "恭喜".$_SESSION['username']."登陆成功<br />"; echo '<a href="logout.php">退出登陆</a >'; }else{ header('location:deng0.php'); }

    4、删除会话,删除会话id会话变量以及客户端cookie值。退出登录时的操作。

    <?php
    /** */
    session_start();
    header("Content-type:text/html;charset=utf-8");//解决中文乱码
    /*
    //删除会话变量$_SESSION['user']="yangyang",不会删除session文件和session_Id
    session_unset();
    echo session_Id(),'<br />';
    //删除会话变量$_SESSION['user']="yangyang",不会删除session文件和session_Id
    $_SESSION=array();
    echo session_Id(),'<br />';
    
    //删除会话Id和会话文件,它不会删除内存中的会话变量$_SESSION['user']="yangyang"
    session_destroy();
    print_r($_SESSION);echo session_Id(),'<br />';
    */
    //如果要删除会话Id和会话文件,并且清空会话变量,需要配合session_unset()来使用,此时服务器中的会话文件和Id和变量都被删除了
    //但是客户端cookie还在
    session_unset();
    session_destroy();
    //清空cookie会话Id的值,路径必须写上
    setcookie(session_name(),session_id(),time()-10,'/');
    echo "感谢使用!";

    二、cookie变量的应用实例。

    1、通过例子中的$_COOKIE['hist']变量存储用户最近10条浏览记录

    <?php
    /*序列化和反序列化函数测试
    $arr=[1=>'a',2=>'b',3=>'c'];
    $a=serialize($arr);//
    echo $a;
    print_r(unserialize($a));
    */
    header("Content-type:text/html;charset=utf-8");//解决中文乱码
    
    //1、获取URL地址,用到变量$_SERVER['REQUEST_URI']
    $url=$_SERVER['REQUEST_URI'];//获取当前URL地址 //echo $url,'<br />'; //echo a,'<br />'; //2、将URL放入到cookie中 //用一个数组来保存URL,因为记录比较多用变量存储太麻烦 $arr=[]; //2、首先判断是否有浏览记录,如果有,则将当前URL放到浏览记录的最前面//反之,则新建一个浏览记录 if(isset($_COOKIE['hist'])) { $arr=unserialize($_COOKIE['hist']);//变成数组,取出来的是字符串需要反序列化,因为下面要压入数组中 array_unshift($arr,$url);//压入数组,将URL地址放到历史记录最前面 $arr=array_unique($arr);//保证浏览记录不重复 //只保存最近10条浏览记录 if(count($arr)>10){ array_pop($arr);//弹出最早进入的一条数据 } //2、再次存放到cookie中 setcookie('hist',serialize($arr));//放入cookie中 }else{ $arr[]=$url;//将URL地址存入数组中 //1、首次设置cookie setcookie('hist',serialize($arr));//把数组序列化为字符串,存入$_COOKIE['hist'] } echo "历史浏览记录<br />"; //print_r($arr); echo '<ol>'; foreach($arr as $k=>$v){ //echo $v,'<br />'; echo '<li>'.$v.'</li>'; } echo '</ol>'; echo '<hr />'; echo '<a href="?id='.mt_rand(1,100).'">随机产生一个Id</a >';
  • 相关阅读:
    阿里云内网和公网NTP服务器和其他互联网基础服务时间同步服务器
    python3 tkinter
    未来的趋势发展 802.11v网络协议解析
    如何挑选好料酒?
    bootstrap
    结巴中文词频分析
    Covariance 协方差分析
    调整的R方_如何选择回归模型
    赤池信息量准则 ( Akaike information criterion)
    python蒙特卡洛脚本模拟—挑战者号爆炸概率
  • 原文地址:https://www.cnblogs.com/yang01/p/7270786.html
Copyright © 2020-2023  润新知