zoukankan      html  css  js  c++  java
  • Session案例:实现用户登录

    <!-- login.html -->
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>用户登录系统</title>
        <style>
            * {
                padding: 0;
                margin: 0;
                list-style: none;
            }
            fieldset{
                 280px;
                height: 150px;
                margin: 36px auto;
                padding: 24px;
            }
            .login_btn {
                 72px;
                margin: 12px 96px;
            }
            input {
                margin: 5px auto;
            }
        </style>
    </head>
    <body>
        <form action="login.php" method="post">
            <fieldset>
                <legend>用户登录</legend>
                <ul>
                    <li>
                        <label for="">用户名:</label>
                        <input type="text" name='username'>
                    </li>
                    <li>
                        <label for="">密&nbsp;&nbsp;&nbsp;码:</label>
                        <input type="password" name='pwd'>
                    </li>
                    <li>
                        <label for="">&nbsp;</label>
                        <input type="checkbox" name='remember' value='yes'>&nbsp;7天内自动登录
                    </li>
                    <li>
                        <label for="">&nbsp;</label>
                        <input type="submit" name='login' value="登录" class='login_btn'>
                    </li>
                </ul>
            </fieldset>
        </form>
    </body>
    </html>
    
    # login.php
    
    <?php
    	header("Content-Type: text/html; charset=utf-8");
        session_start();
        
        if(isset($_POST['login'])){
            $username= trim($_POST['username']);
            $password= trim($_POST['pwd']);
            if(($username== '') || ($password== '')){
                header('refresh: 3; url= login.html');
                echo '该用户名或者密码不能为空,3秒后跳转到登录页面!';
                exit;
            }elseif(($username!= 'Sunny') || ($password!= 'password')){
                header('refresh: 3; url= login.html');
                echo '用户名或者密码错误,3秒后跳转到登录页面!';
                exit;
            }elseif(($username== 'Sunny') || ($password== 'password')){
                $_SESSION['username']= $username;
                $_SESSION['islogin']= 1;
                if($_POST['remember']=='yes'){
                    setcookie("username", $username, time()+ 7*24*60*60);
                    setcookie("code", md5($username.md5($password)), time()+ 7*24*60*60);
                }else{
                    setcookie("username", '', time()-1);
                    setcookie("code", '', time()-1);
                }
                header("location: index.php");
            }
        }
    ?>
    
    # index.php
    
    <?php
    	header("Content-Type: text/html; charset=utf-8");
    	session_start();
    
    	if(isset($_COOKIE['username'])){
    		$_SESSION['username']= $_COOKIE['username'];
    		$_SESSION['islogin']= 1;
    	}
    	if(isset($_SESSION['islogin'])){
    		echo "{$_SESSION['username']}您好,欢迎来到个人中心!<br>";
    		echo "<a href='logout.php'>注销</a>";
    	}else{
    		echo "您还未登录,请<a href='login.html'>登录</a>";
    	}
    ?>
    
    # logout.php
    
    <?php
    	header("Content-Type: text/html; charset=utf-8");
        session_start();
        
        $username= $_SESSION['username'];
        $_SESSION=array();
        session_destroy();
    
        setcookie("username", '', time()-1);
        setcookie("code", '', time()-1);
        echo "{$username},欢迎您下次再来!";
        echo "重新<a href='login.html'>登录</a>";
    ?>
    
  • 相关阅读:
    JSON.parse(JSON.stringify()) 实现对对象的深拷贝
    Promise 多重链式调用
    qs.parse() 和 qs.stringfy() 之 传输数据秘籍
    js 递归思想 处理后台多维数组的数据 之 完美契合
    js 反转字符串的实现
    js 中的! 和 !! 的区别
    vue 权限管理深度探究
    Web 前端 中高难度问题(希望看完之后的你可以拿到Offer^v^)
    vue懒加载 路由 router 的编写(resolve)
    Efficiency in Shell
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/14009075.html
Copyright © 2011-2022 走看看