製作 PHP 網站登入系統判斷使用者是否已登入
範例下載:https://drive.google.com/file/d/0BzZvFmdOc_f2T243YkY3d3BtWGs/edit?usp=sharing
常在網路上的朋友,應該對這個名詞不陌生吧,究竟是好的還是不好的呢?其實說法有很多,但應用的好的話,可以帶給管理者與使用者許多的方便。Cookie 簡單來說就是某些網站,為了提供更適合的內容、或找出使用者的偏好,為了辨別使用者身份而儲存在瀏覽器上的資料。 Cookie 是獨一無二的,每台電腦、每個瀏覽器、每位使用者每次取得的 Cookie 都會不一樣,這也是為什麼 Cookie 有所謂的:有效期限。
最常見的 Cookie 應用就是登入系統了,如何在每次登入不需要再打一次帳號、密碼,如何關掉瀏覽器後,下次使用可以直接收 Gmail 、看 Facebook …都需要Cookie 的使用,所以當瀏覽器不開啟 Cookie 也會帶來相對程度的麻煩。本文所介紹的方法就資訊安全來講,非常不及格,純粹作為練習Cookie 的使用方法。
===================================================
第1步 首先開啟一個檔案 “index.php",在一開始的地方現做一個取得 Cookie 的動作,如果取不到,則要把畫面導向登入頁面。
<?php if(!isset($_COOKIE[“login"])){
header(“Location: http://網址/t/login.php"); //將網址改為要導入的登入頁面
}
else{ ?>
您已登入
<?php } ?>
===================================================
第2步 接下來是製作登入頁面的 Cookie 判定 “login.php",在登入成功之後,網站要產生一個 Cookie 給瀏覽器。因此在最一開始我們要判定使用者送出來的資料 Username 和Password是否和設定的一致,如果一樣就送出一個 Cookie 給瀏覽器。
<?php
if($_POST[password] == ‘密碼’
&& $_POST[username] == ‘帳號’){
setcookie(“login",’USER’, time()+3600);
header(“Location: http://網址/t/index.php"); //將網址改為登入成功後要導向的頁面
}
?>
<form method="post" action="login.php" style="width:100%;margin:0 auto;">
<div><label for="user_login">
<input id="username" type="text" size="28″ name="username" value="" />
</label></div>
<div><label for="user_password">
<input id="password" type="password" size="28″ name="password" value="" />
</label></div>
<div>
<button type="submit" title="Pass" name=".login" value="Pass" >Pass</button>
</div>
</form>
<?php } ?>
===================================================
第3步 接著再儲存的時候一定要注意的地方就是,要設定編碼為「…不帶簽名」 ,有的編輯器會寫成「不帶BOM」;因為如果有帶簽名,會影響到Cookie的讀取與寫入。