程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 構建網站:用戶的登入認證

構建網站:用戶的登入認證

日期:2017/1/17 17:44:03      編輯:關於PHP編程

前面已經介紹了幾個 php 的功能技巧,從現在開始就來充分利用組合這些技巧來構建一個強大的網站,以後會陸續地介紹一些高級和基本的技巧如何在網站中應用.
建立一個好的網站,用戶登認證功能是必不可少的,同樣的在這兒我只是介紹思路和做法,並不會添鴨式地一步一步的列出步驟.
首先需要一個可用來記錄用戶資料的數據庫,其內容應當至少包括姓名和密碼,自然根據需要可在數據庫增加相應的字段.
為了使數據庫有資料,必須要有個注冊程序,通過注冊用戶可將資料存進數據庫,注冊程序的實現非常地簡單,僅僅是發出存入數據庫的指令,在這裡就不再描述了,這裡要提出的是,出於對用戶資料安全的考慮,最好為用戶的密碼加密,還有數據庫不應出現相同的姓名,否則會亂套.
下面介紹的重點是用戶登入和登出的實現,用戶登入的功能用 session 和 cookie 都能完成,我在這兒要介紹的是如何用 cookie 來完成這個功能的.
其實用戶登入的整個過程理解起來很簡單,程序將用戶輸入的姓名和密碼與數據庫存儲的資料進行對比,數據庫有此用戶的資料就通過,沒有則拒絕該用戶通過.
來看看登入程序 login.php 的工作流程:
用戶提交資料到 login,php,login.php 就會經過如下處理:
$passwd=md5($passwd);
$result=mysql_query("select * from user where name='$name' and passwd='$passwd'");
之所以密碼要經過 md5 處理,是因為數據庫存儲的是經過 md5 加密過的密碼,判斷有無此用戶存在,不存在或密碼錯誤則給出些告警給該用戶,存在此用戶的資料的話,就可以將該用戶的資料設置為 cookie 值,如下:
setcookie("cookiename",$name,time()+18000,"","/");
setcookie("cookiepasswd",$passwd,time()+18000,"","/");
如果擔心用戶因忘記登出而造成安全問題的話,就把時間設置去除:
setcookie("cookiename",$name,"","/");
setcookie("cookiepasswd",$passwd,"","/");
這樣當用戶關閉浏覽器時,cookie 的設置就失效了,也就是說用戶下一次來的時候,必須重新登入!雖然有了這個關閉浏覽器就讓 cookie 失效的安全功能,但還是需要一個用戶登出的功能以策安全,登出功能也就是讓記載用戶資料的 cookie 失效的功能,完成這個功能很簡單,只需要將時間置為 -1,並把 cookie 變量置空就行了:
logout.php:
setcookie('cookiename',"",time()-1,'/',"");
setcookie('cookiepasswd',"",time()-1,'/',"");
$cookiename="";
$cookiepasswd="";
這樣一個完整的用戶認證功能就完成了.


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved