1. 程式人生 > >【php增刪改查實例】第十九節 - session的使用: 讓服務器知道你是誰?

【php增刪改查實例】第十九節 - session的使用: 讓服務器知道你是誰?

驗證 關閉 main 登錄 必須 ech 密碼 添加 周期

技術分享圖片
因為HTTP請求是一種無狀態的請求,所謂無狀態,就是服務器不會記錄下你本次請求的信息。http它是基於請求 - 相應模式的一種數據傳輸協議。就是說,你發送一個請求,我服務器給你一個響應,這件事情就算完了。無狀態也就是一種無記憶的方式。

Session的作用就是,臨時在服務器端記錄下你用戶的某些數據,方便用戶在之後的操作中直接調用。

如果不用session的技術,那麽用戶不管做什麽操作,都需要重新認證用戶名和密碼。

可是,如果用了session,只要用戶瀏覽器不關,服務器就能夠記住你的身份信息,以便之後的操作來調用。

Session的生命周期是和瀏覽器相關的,瀏覽器一旦關閉,那麽服務器就會清除掉本次的session。

在本系統中,如何去運用這個session?

打開login2.php,在代碼的最後,當用戶登錄驗證成功後,我們就把用戶名存放到session中去,保證之後的操作,服務器認為當前登錄人的信息是有效的。

session_start(); // 使用session之前,我們必須要用session_start函數來開啟session
$_SESSION["username"] = $username;

技術分享圖片

回到login2.html中,把登錄成功後的跳轉地址改為 ../main.php
技術分享圖片
把這裏的main.html後綴名改為.php
技術分享圖片

打開main.php

在這個文件的頂部,添加啟用session的代碼。
技術分享圖片


然後在這個地方:
技術分享圖片
超級管理員不能在頁面裏面寫死,而應該用php代碼獲取session中的username,貼到這個地方。

把超級管理員替換成以下代碼:

<?php  echo $_SESSION["username"]; ?>

把存放到session中的username貼過來。

現在還有一個問題,如果用戶沒有登錄,也可以訪問到main.php頁面,這是不對的。

那如何去判斷用戶是否登錄呢?是不是只要去看session的username存在還是不存在?

如果session當中沒有username,那麽就跳轉到登錄界面。

 <script type="text/javascript">

            <?php


                if(!isset($_SESSION["username"])){
                    echo "location.href=‘login/login2.html‘;";
                }

            ?>


        </script>

源碼獲取:https://www.jianshu.com/p/4977bd0073d5

【php增刪改查實例】第十九節 - session的使用: 讓服務器知道你是誰?