ddxiami

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2449|回复: 1

[细说PHP] 第23章会话控制

[复制链接]
发表于 2013-8-8 17:27:01 | 显示全部楼层 |阅读模式
基于Cookie的用户登录模块

<?php
    /* 声明一个删除Cookie的函数,调用时清除在客户端设置的所有Cookie */
        function clearCookies() {                    
                setCookie('username', '', time()-3600);            //删除Cookie中的标识符为username的变量
                setCookie('isLogin', '', time()-3600);             //删除Cookie中的标识符为isLogin的变量
        }
       
        /* 判断用户是否执行的是登录操作 */
        if($_GET["action"]=="login") {   
                /* 调用时清除在客户端先前设置的所有Cookie */
                clearCookies();                                
        /* 检查用户是否为admin,并且密码是否等于123456 */
                if($_POST["username"]=="admin" && $_POST["password"]=="123456")        {
            /* 向Cookie中设置标识符为username,值是表单中提交的,期限为一周 */
                        setCookie('username', $_POST["username"], time()+60*60*24*7);  
            /* 向Cookie中设置标识符为isLogin,用来在其他页面检查用户是否登录 */
                        setCookie('isLogin', '1', time()+60*60*24*7);
                        /* 如果Cookie设置成功则转向网站首页 */
                        header("Location:index.php");            
                }else{
                        die("用户名或密码错误!");
                }
        /* 判断用户是否执行的是退出操作         */
        }else if($_GET["action"]=="logout"){   
                /* 退出时清除在客户端设置的所有Cookie */
                clearCookies();                             
        }
?>
<html>
        <head><title>用户登录</title></head>
        <body>
                <h2>用户登录</h2>
                <form action="login.php?action=login" method="post">
                        用户名 <input type="text" name="username"  /> <br>
                        密&nbsp;&nbsp;&nbsp;&nbsp;码 <input type="password" name="password" /><br>
                        <input type="submit" value="登录" />
                </form>
        </body>
</html>
回复

使用道具 举报

 楼主| 发表于 2013-8-8 17:33:07 | 显示全部楼层
session的注销过程

<?php
        //第一步:开启Session并初始化
        session_start();      
        //第二步:删除所有Session的变量,也可用unset($_SESSION[xxx])逐个删除
        $_SESSION = array();   
        //第三步:如果使用基于Cookie的Session,使用setCooike()删除包含Session Id的Cookie
        if (isset($_COOKIE[session_name()])) {
                   setcookie(session_name(), '', time()-42000, '/');
        }
        //第四步:最后彻底销毁Session
        session_destroy();
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|技术文档库 ( 闽ICP备15017263号-2 )|网站地图

GMT+8, 2025-5-19 00:44 , Processed in 0.034596 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表