用戶認證的原理很簡單:首先需要用戶在頁面上填入用戶名和密碼,當然沒注冊的用戶需要先注冊。然后調用數據庫搜索是否有相應的用戶。如果有就確認,沒有則提醒用戶先注冊。使用php來完成這一切很簡單,但需要注意的是如果想在以后的頁面中都能確認用戶身份。
第一步是做一個登錄的頁面。
第二步開始登錄后的確認程序的設計。
login.php: mysql_connect("localhost","user","password") /*連接數據庫,用戶名和密碼自行修改*/ or die("無法連接數據庫,請重試"); mysql_select_db("userinfo") or die("無法選擇數據庫,請重試"); $today=date("y-m-d h:i:s"); $query=" select id from usertbl where name=$name and password=$password /*從數據庫中搜索和登錄用戶相應的資料*/ "; $result=mysql_query($query); $numrows=mysql_num_rows($result); if($numrows==0){ /*驗證是否能找出相同資料的用戶,不能則未注冊*/ echo 非法用戶; echo 請注冊先; echo 重試; } else{ $row=mysql_fetch_array($result); $id=$row[0]; $query=" update usertbl set lastlogin=$today where id=$id"; $result=mysql_query($query); setcookie("usercookie", "歡迎你,$name"); /*這里使用了cookie,以方便之后的頁面認證。但我未開發完這一塊。希望有興趣的朋友指正*/ echo 登錄成功; echo 請進!; } ?>
第三步做好注冊的頁面。
第四步是注冊后的身份確認和輸入數據庫。
register.php: mysql_connect("localhost","user","password") /*請修改用戶名和密碼*/ or die("無法連接數據庫,請重試"); mysql_select_db("userinfo") or die("無法選擇數據庫,請重試"); $query="select id from usertbl where name=$name/"; /*從數據庫中搜索相同名字的用戶資料*/ $result=mysql_query($query); $numrows=mysql_num_rows($result); if($numrows!=0) /*找到了當然就是有人先注冊了相同的名字*/ {echo 已有人注冊此名,請重新選擇名字!;} else {$query="insert into usertbl values(0,$name,$password,/)"; /*找不到相同的就輸入新的用戶資料*/ mysql_query($query); echo 注冊成功; echo 請登錄!;} ?>
下一步是cookie的使用,我原打算使用cookie來使每一頁都能識別用戶身份,但由于別的頁面還沒做好,不知道需要用到哪些資料。于是就只有一個很簡單的使用,這里用到了php的引用:
if(!$usercookie) {header("非法用戶"); } ?> welcome.php: require("cookie.php"); /*調用cookie.php*/ ?> echo $usercookie; ?>
到這兒便完成了一個很簡單的用戶認證系統,當然如果你要使用它還得建好數據庫。下面是我的數據庫表的結構,庫的名字是userinfo。
create table usertbl ( id int auto_increment primary key, name varchar(30), password varchar(20), lastlogin varchar(20) );
新聞熱點
疑難解答