亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 49
粉絲 1
評(píng)論 0
訪問(wèn)量 52743
相關(guān)推薦
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
完成用戶的登錄與驗(yàn)證,分別用cookie和session來(lái)實(shí)現(xiàn)(掌握cookie和session的回話流程,使用bootstrap美化表單部分)2019年6月10日20點(diǎn)
Nick的博客
原創(chuàng)
816人瀏覽過(guò)

掌握cookie和session的回話流程:登錄:login.php——>驗(yàn)證:check.php——>后臺(tái)頁(yè)面:admin.php——>退出登錄:logout——>退出成功后返回到登錄界面:login.php.


cookie(沒(méi)有使用bootstrap美化):

login.php:

實(shí)例

<?php
if (isset($_COOKIE['username']) && $_COOKIE['username'] === 'admin'):
?>
<script>alert('您已經(jīng)登錄了,請(qǐng)不要重復(fù)登錄');location.assign('admin.php');</script>
<?php endif; ?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>用戶登錄</title>
</head>
<body>
<h3>用戶登錄</h3>
<form action="check.php" method="post" onsubmit="return  isEmpty();">
    <P>
        <label for="email">郵箱:</label>
        <input type="email" name="email" id="email">
    </P>

    <P>
        <label for="password">提交:</label>
        <input type="password" name="password" id="password">
    </P>

    <p>
        <button>提交</button>
    </p>
</form>

<script>
    // onsubmit: 表單提交前進(jìn)行驗(yàn)證, 默認(rèn)返回true

    function isEmpty() {
        var email = document.getElementById('email').value;
        var password  = document.getElementById('password').value;

        // 用if 語(yǔ)句來(lái)做非空驗(yàn)證函數(shù)
        // if (email.length === 0 || password.length === 0) {
        //     alert('郵箱或密碼不能為空');
        //     return false;
        // }

        if (email.length ===0) {
            alert('郵箱不能為空');
            if (password.length === 0 ) {
                alert('密碼不能為空');
            }
            return false;
        }
    }
</script>
</body>
</html>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例


check.php:

實(shí)例

<?php
if (isset($_COOKIE['username']) && $_COOKIE['username'] === 'admin') {
    echo '<script>alert(\'您已經(jīng)登錄了,請(qǐng)不要重復(fù)登錄\');location.assign("admin.php");</script>';
}

//j檢查是否獲得提交數(shù)據(jù)
//print_r($_POST);

//連接數(shù)據(jù)庫(kù)
require __DIR__ . '/inc/connect.php';
//var_dump($pdo);

//獲取數(shù)據(jù),并創(chuàng)建新變量
$email  = $_POST['email'];
$password = sha1($_POST['password']);
//var_dump($email,$password);

//用user表進(jìn)行驗(yàn)證
$sql = 'SELECT * FROM `user` WHERE `email`=:email AND `password`=:password LIMIT 1';

//創(chuàng)建SQL語(yǔ)句模板對(duì)象,預(yù)處理對(duì)象
$stmt = $pdo->prepare($sql);

//執(zhí)行,execute()內(nèi)為數(shù)據(jù)綁定
$stmt->execute(['email'=>$email, 'password'=>$password]);

//fetch(): 成功返回?cái)?shù)組,失敗返回false
$user = $stmt->fetch(PDO::FETCH_ASSOC);
//var_dump($user);

if (false === $user) {
    //登錄失敗
    echo '<script>alert("登錄失敗,請(qǐng)檢查"); location.href="login.php";</script>';
    //終止當(dāng)前腳本
    die;  //exit; exit();
}

//登錄成功,將用戶信息寫(xiě)入cookie
setcookie('username',$user['username']);
echo  '<script>alert(\'登錄成功\'); location.assign("admin.php");</script>';

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例


admin.php:

實(shí)例

<?php
if (isset($_COOKIE['username']) && $_COOKIE['username'] === 'admin'):
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>后臺(tái)首頁(yè)</title>
</head>
<body>
<h1>后天首頁(yè)</h1>
<p>
    <?php echo $_COOKIE['username'] ?>
</p>

<p>
    <a href="logout.php">退出</a>
</p>
</body>
</html>

<?php else: ?>

<script>alert('請(qǐng)先登錄');location.assign('login.php');</script>;

<?php endif ?>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例


logout.php:

實(shí)例

<?php
//必須在已經(jīng)登錄的情況下,才能進(jìn)行退出登錄的操作.
//isset():判斷當(dāng)前變量是否存在
if (isset($_COOKIE['username']) && $_COOKIE['username'] === 'admin') {
    //退出
    setcookie('username',null,time()-3600);
    echo '<script> alert(\'退出成功\');location.assign("login.php");</script>';
} else {
    echo '<script> alert(\'請(qǐng)先登錄\');location.assign("login.php");</script>';
}

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例




session改寫(xiě):

實(shí)例

<?php
//開(kāi)啟回話
session_start();   //向cookie中寫(xiě)入session_id:PHPSESSID

if (isset($_SESSION['username']) && $_SESSION['username'] === 'admin'):
?>
<script>alert('您已經(jīng)登錄了,請(qǐng)不要重復(fù)登錄');location.assign('admin.php');</script>
<?php endif; ?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <link rel="stylesheet" href="static/css/bootstrap.css">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>用戶登錄</title>
</head>
<body>
<h3>用戶登錄</h3>
<form action="check.php" method="post" onsubmit="return  isEmpty();">
<!--    <P>-->
<!--        <label for="email">郵箱:</label>-->
<!--        <input type="email" name="email" id="email">-->
<!--    </P>-->

    <!--    <P>-->
    <!--        <label for="password">密碼:</label>-->
    <!--        <input type="password" name="password" id="password">-->
    <!--    </P>-->
    <p>
        <label class="input-group">
            <span class="input-group-addon" id="basic-addon1">郵   箱:</span>
            <input id="email" name="email"  type="text" placeholder="請(qǐng)您輸入郵箱地址" aria-describedby="basic-addon1">
        </label>
    </p>

    <p>
        <label class="input-group">
            <span class="input-group-addon" id="basic-addon1">密   碼:</span>
            <input id="password" name="password" type="text" placeholder="請(qǐng)輸入您的秘密" aria-describedby="basic-addon1">
        </label>
    </p>

<!--    <P>-->
<!--        <label for="password">提交:</label>-->
<!--        <input type="password" name="password" id="password">-->
<!--    </P>-->

    <p>
        <button class="btn btn-success">提交</button>
    </p>
</form>

<script>
    // onsubmit: 表單提交前進(jìn)行驗(yàn)證, 默認(rèn)返回true

    function isEmpty() {
        var email = document.getElementById('email').value;
        var password  = document.getElementById('password').value;

        // 用if 語(yǔ)句來(lái)做非空驗(yàn)證函數(shù)
        // if (email.length === 0 || password.length === 0) {
        //     alert('郵箱或密碼不能為空');
        //     return false;
        // }
        if (email.length ===0) {
            alert('郵箱不能為空');
            if (password.length === 0 ) {
                alert('密碼不能為空');
            }
            return false;
        }
    }
</script>
</body>
</html>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

頁(yè)面顯示效果:

session登錄.png


check.php:

實(shí)例

<?php
//開(kāi)啟回話
session_start();   //向cookie中寫(xiě)入session_id:PHPSESSID

if (isset($_SESSION['username']) && $_SESSION['username'] === 'admin') {
    echo '<script>alert(\'您已經(jīng)登錄了,請(qǐng)不要重復(fù)登錄\');location.assign("admin.php");</script>';
}

//j檢查是否獲得提交數(shù)據(jù)
//print_r($_POST);

//連接數(shù)據(jù)庫(kù)
require __DIR__ . '/inc/connect.php';
//var_dump($pdo);

//獲取數(shù)據(jù),并創(chuàng)建新變量
$email  = $_POST['email'];
$password = sha1($_POST['password']);
//var_dump($email,$password);

//用user表進(jìn)行驗(yàn)證
$sql = 'SELECT * FROM `user` WHERE `email`=:email AND `password`=:password LIMIT 1';

//創(chuàng)建SQL語(yǔ)句模板對(duì)象,預(yù)處理對(duì)象
$stmt = $pdo->prepare($sql);

//執(zhí)行,execute()內(nèi)為數(shù)據(jù)綁定
$stmt->execute(['email'=>$email, 'password'=>$password]);

//fetch(): 成功返回?cái)?shù)組,失敗返回false
$user = $stmt->fetch(PDO::FETCH_ASSOC);
//var_dump($user);

if (false === $user) {
    //登錄失敗
    echo '<script>alert("登錄失敗,請(qǐng)檢查"); location.href="login.php";</script>';
    //終止當(dāng)前腳本
    die;  //exit; exit();
}

//登錄成功,將用戶信息寫(xiě)入cookie
//setcookie('username',$user['username']);
$_SESSION['username'] = $user['username'];
//session文件中的值:username|s:5:"admin";
echo  '<script>alert(\'登錄成功\'); location.assign("admin.php");</script>';

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例


彈窗顯示效果:

session登錄成功彈窗.png


admin.php:

實(shí)例

<?php
//開(kāi)啟回話
session_start();

if (isset($_SESSION['username']) && $_SESSION['username'] === 'admin'):
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>后臺(tái)首頁(yè)</title>
</head>
<body>
<h1>后天首頁(yè)</h1>
<p>
    <?php echo $_SESSION['username'] ?>
</p>

<p class="btn btn-success">
    <a href="logout.php">退出</a>
</p>
</body>
</html>

<?php else: ?>

<script>alert('請(qǐng)先登錄');location.assign('login.php');</script>;

<?php endif ?>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例


后臺(tái)頁(yè)面的顯示效果:

session狀態(tài)到后臺(tái)首頁(yè).png


logout.php:

實(shí)例

<?php
//開(kāi)啟回話
session_start();
//必須在已經(jīng)登錄的情況下,才能進(jìn)行退出登錄的操作.
//isset():判斷當(dāng)前變量是否存在
if (isset($_SESSION['username']) && $_SESSION['username'] === 'admin') {
    //退出
    //將服務(wù)器中對(duì)應(yīng)的session文件刪除
    session_destroy();
    setcookie('username',null,time()-3600);
    echo '<script> alert(\'退出成功\');location.assign("login.php");</script>';
} else {
    echo '<script> alert(\'請(qǐng)先登錄\');location.assign("login.php");</script>';
}

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例


退出的彈窗效果:

session退出彈窗.png

批改狀態(tài):未批改

老師批語(yǔ):
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)