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=
    */
?>

 截图:

转载于:https://www.cnblogs.com/yzmb/p/4622098.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值