PHP使用COOKIE实现登录功能和退出功能

创建一个名为“bb”的数据库,并创建一张“users”表,具体的数据库语句和数据如下:

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `users`;

CREATE TABLE `users` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `username` varchar(20) CHARACTER SET utf8 DEFAULT NULL,

  `password` varchar(32) CHARACTER SET utf8 DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
INSERT INTO `users` VALUES ('1', 'admin', '21232f297a57a5a743894a0e4a801fc3');

数据库创建好添加数据后我们在建一个login.php文件,里面的代码如下:

prepare("select id,username from users where username=? and password=?");
        // 执行SQL语句
        $stmt->execute(array($user,$pass));
        // 判断查到数据影响行数大于0就执行里面的程序(如果影响行数大于0,说明这个用户时存在的,就让登录)否则不让登录
        if($stmt->rowCount()){
            $result = $stmt->fetch(PDO::FETCH_NUM);//`fetch从结果集中获取下一行,返回一个索引以0开始的结果集列号的数组
            list($id,$username) = $result;//    list()函数用于在一次操作中给一组变量赋值
            $time = time() + 24 * 60 *60;
            setCookie("uid",$id,$time,"/");//..设置COOKIE
            setCookie("username",$username,$time,"/");//..设置一个用户名COOKIE
            setCookie("isLogin",1,$time,"/");//..设置一个登录判断的标记isLogin
            // echo '';//..登录成功跳转到主页
        }else{
            echo "";
        }
    }
    // 处理退出登录的功能
    if(isset($_GET['do']) && $_GET['do'] == 'logout'){
        setCookie("uid",'',time() - 3600,"/");
        setCookie("username",'',time() - 3600,"/");
        setCookie("isLogin",'',time()-3600,"/");
        echo '';
    }
?>

    
        
            
            Document
        

        
            
账号:
密码:

再创建一个index.php文件,里面的代码如下:


            alert("你还没有登录,请登录!");
            location = "login.php"
        ';
    }
    echo "你好{$_COOKIE['username']} | 退出登录";
?>

你可能感兴趣的:(PHP相关知识)