首页 > php会话 > php cookie登录验证代码

php cookie登录验证代码

提供一款可以自动cookie登录方法,用户可以在登录时选择保存进程几天几个月等,我们只要进来页面时判断一下就KO了。

html页面

<html> 
	<head> 
	<title>Login</title> 
	<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
	</head>  
	<body> 
	<form name="form1" method="post" action="login.php"> 
	<table width="300" border="0" align="center" cellpadding="2" cellspacing="2"> 
	    <tr> 
	      <td width="150"><div align="right">用户名:</div></td> 
	      <td width="150"><input type="text" name="username"></td> 
	    </tr> 
	    <tr> 
	      <td><div align="right">密码:</div></td> 
	      <td><input type="password" name="passcode"></td> 
	    </tr> 
	    <tr> 
	      <td><div align="right">Cookie保存时间:</div></td> 
	      <td><select name="cookie" id="cookie"> 
	        <option value="0" selected>浏览器进程</option> 
	        <option value="1">保存1天</option> 
	        <option value="2">保存30天</option> 
	        <option value="3">保存365天</option> 
	      </select></td> 
	    </tr> 
	</table> 
	<p align="center"> 
	    <input type="submit" name="Submit" value="Submit"> 
	    <input type="reset" name="Reset" value="Reset"> 
	</p> 
	</form> 
	</body> 
</html>

login.php

<?php
@mysql_connect("localhost", "root", "1981427") //选择数据库之前需要先连接数据库服务器
 or die("数据库服务器连接失败");
@mysql_select_db("test") //选择数据库mydb
 or die("数据库不存在或不可用");
//获取用户输入
$username = $_POST['username'];
$passcode = $_POST['passcode'];
$cookie = $_POST['cookie'];
//执行SQL语句
$query = @mysql_query("select username, userflag from users " . "where username = '$username' and passcode = '$passcode'") or die("SQL语句执行失败");
//判断用户是否存在,密码是否正确
if ($row = mysql_fetch_array($query)) {
    if ($row['userflag'] == 1 or $row['userflag'] == 0) //判断用户权限信息是否有效
    {
        switch ($cookie) //根据用户的选择设置cookie保存时间
        {
            case 0: //保存Cookie为浏览器进程
                setcookie("username", $row['username']);
                break;

            case 1: //保存1天
                setcookie("username", $row['username'], time() + 24 * 60 * 60);
                break;

            case 2: //保存30天
                setcookie("username", $row['username'], time() + 30 * 24 * 60 * 60);
                break;

            case 3: //保存365天
                setcookie("username", $row['username'], time() + 365 * 24 * 60 * 60);
                break;
        }
        header("location: main.php"); //自动跳转到main.php
        
    } else {
        echo "用户权限信息不正确";
    }
} else {
    echo "用户名或密码错误";
}
?>

main.php

<?php
session_start();
if (isset($_COOKIE['username'])) {
    @mysql_connect("localhost", "root", "1981427") //选择数据库之前需要先连接数据库服务器
     or die("数据库服务器连接失败");
    @mysql_select_db("test") //选择数据库mydb
     or die("数据库不存在或不可用");
    //获取Session
    $username = $_COOKIE['username'];
    //执行SQL语句获得userflag的值
    $query = @mysql_query("select userflag from users " . "where username = '$username'") or die("SQL语句执行失败");
    $row = mysql_fetch_array($query);
    //获得用户权限信息
    $flag = $row['userflag'];
    //根据userflag的值输出不同的欢迎信息
    if ($flag == 1) echo "欢迎管理员" . $_SESSION['username'] . "登录系统";
    if ($flag == 0) echo "欢迎用户" . $_SESSION['username'] . "登录系统";
    echo "<a href="logout . php" mce_href="logout . php">注销</a>";
} else {
    echo "您没有权限访问本页面";
}
?>

logout.php

<?php
setcookie("username");
echo "注销成功";
?>

           

文章链接:http://www.phprm.com/huihua/fs996.html

随便收藏,请保留本文地址!

标签:cookie 登录 验证

相关文章

发表留言