PHP程序設計基礎(微課版)(第2版)課件 第11章 PHP 用戶注冊與登錄_第1頁
PHP程序設計基礎(微課版)(第2版)課件 第11章 PHP 用戶注冊與登錄_第2頁
PHP程序設計基礎(微課版)(第2版)課件 第11章 PHP 用戶注冊與登錄_第3頁
PHP程序設計基礎(微課版)(第2版)課件 第11章 PHP 用戶注冊與登錄_第4頁
PHP程序設計基礎(微課版)(第2版)課件 第11章 PHP 用戶注冊與登錄_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

用戶注冊分析及數據庫介紹陳學平1需求分析012數據表設計023頁面組成03目錄用戶登錄檢測通過后以session來保持用戶的登錄信息。PHP正則表達式用于判斷用戶的輸入是否符合要求。PHP中預定義$_POST和$_GET全局變量來接受用戶表單和URL參數信息。本節(jié)涉及到以下PHP基礎知識:網站用戶注冊與登錄是很常用的一個功能,本節(jié)介紹PHP開發(fā)用戶注冊與登錄模塊的知識。011需求分析1需求分析主要功能分為用戶注冊、用戶登錄、用戶退出、用戶中心四個部分。1.1用戶注冊用戶注冊主要功能有:01(1)注冊信息表單填寫界面javascript腳本初步檢測用戶輸入的注冊信息。02(2)注冊處理模塊檢測注冊信息是否符合要求。03(3)檢測用戶名是否已存在。04(4)將注冊信息寫入數據表,注冊成功。051.2用戶登錄用戶登錄主要功能有:(3)登錄信息正確,則提示登錄成功,將用戶設置為登錄狀態(tài)(session)。(1)登錄表單界面javascript腳本初步檢測用戶輸入的登錄信息。(2)登錄模塊將用戶輸入信息與數據庫數據進行核對。(4)登錄信息不正確,則提示登錄失敗,用戶可以再次嘗試登錄。01020304051.3用戶退出用戶退出主要功能有:無條件注銷session。1.4用戶中心用戶退出主要功能有:01(1)判斷用戶是否登錄,如果沒有登錄,則轉向到登錄界面。02(2)如果登錄是登錄狀態(tài),則讀出用戶相關信息。03022數據表設計2數據表設計根據功能需求分析,用于記用戶信息的user表需要的字段如下:建表SQL參考如下:CREATETABLE`user`(`uid`mediumint(8)unsignedNOTNULLauto_increment,`username`char(15)NOTNULLdefault'',`password`char(32)NOTNULLdefault'',`email`varchar(40)NOTNULLdefault'',`regdate`int(10)unsignedNOTNULLdefault'0',PRIMARYKEY(`uid`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=1;033頁面組成3頁面組成01各頁面功能如下:02reg.html:用戶注冊信息填寫表單頁面03conn.php:數據庫連接包含文件04reg.php:用戶注冊處理程序05login.html:用戶登錄表單頁面06login.php:用戶登錄表單頁面07my.php:用戶中心謝謝11.4PHP用戶注冊陳學平4PHP用戶注冊014.1注冊頁面reg.html負責收集用戶填寫的注冊信息。這里只列出關鍵的代碼片段,完整的代碼附在本節(jié)最后。4.1注冊頁面注冊表單<fieldset><legend>用戶注冊</legend><formname="RegForm"method="post"action="reg.php"onSubmit="returnInputCheck(this)"><p><labelfor="username"class="label">用戶名:</label><inputid="username"name="username"type="text"class="input"/>4.1注冊頁面注冊表單<span>(必填,3-15字符長度,支持漢字、字母、數字及_)</span><p/><p><labelfor="password"class="label">密碼:</label><inputid="password"name="password"type="password"class="input"/><span>(必填,不得少于6位)</span><p/>4.1注冊頁面注冊表單<p><labelfor="repass"class="label">重復密碼:</label><inputid="repass"name="repass"type="password"class="input"/><p/><p><labelfor="email"class="label">電子郵箱:</label>4.1注冊頁面注冊表單<inputid="email"name="email"type="text"class="input"/><span>(必填)</span><p/><p><inputtype="submit"name="submit"value="提交注冊"class="left"/></p></form></fieldset>4.1注冊頁面javascript檢測代碼<scriptlanguage=JavaScript><!--

functionInputCheck(RegForm){

if(RegForm.username.value=="")

{

alert("用戶名不可為空!");

RegForm.username.focus();

return(false);

}4.1注冊頁面javascript檢測代碼

if(RegForm.password.value=="")

{

alert("必須設定登錄密碼!");

RegForm.password.focus();

return(false);

}

if(RegForm.repass.value!=RegForm.password.value)

{

alert("兩次密碼不一致!");

RegForm.repass.focus();

return(false);

}

if(RegForm.email.value=="")

{

alert("電子郵箱不可為空!");

RegForm.email.focus();

return(false);

}}

//--></script>4.1注冊頁面CSS樣式<styletype="text/css">html{font-size:12px;}fieldset{width:520px;margin:0auto;}legend{font-weight:bold;font-size:14px;}label{float:left;width:70px;margin-left:10px;}.left{margin-left:80px;}.input{width:150px;}span{color:#666666;}</style>4.1注冊頁面注冊表單效果圖如圖11-1所示。圖11-1注冊效果4.2數據庫連接數據庫連接代碼如下:<?php$conn=@mysqli_connect("localhost","root","root");if(!$conn){die("連接數據庫失敗:".mysqli_error($conn));}mysqli_select_db($conn,"db_user");//字符轉換,讀庫mysqli_query($conn,"setcharacterset'gbk'");//寫庫mysqli_query($conn,"setnames'gbk'");?>4.3注冊后臺處理reg.php負責處理用戶注冊信息。4.3注冊后臺處理注冊檢測if(!isset($_POST['submit'])){exit('非法訪問!');}$username=$_POST['username'];$password=$_POST['password'];$email=$_POST['email'];//注冊信息判斷if(!preg_match('/^[\w\x80-\xff]{3,15}$/',$username)){4.3注冊后臺處理注冊檢測exit('錯誤:用戶名不符合規(guī)定。<ahref="javascript:history.back(-1);">返回</a>');}if(strlen($password)<6){exit('錯誤:密碼長度不符合規(guī)定。<ahref="javascript:history.back(-1);">返回</a>');}if(!preg_match('/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/',$email)){4.3注冊后臺處理注冊檢測exit('錯誤:電子郵箱格式錯誤。<ahref="javascript:history.back(-1);">返回</a>');}本段代碼首先檢測是否POST提交訪問該頁,接下來根據注冊要求(用戶名3-15字符長度,支持漢字、字母、數字及_;密碼不得少于6位)對用戶提交的注冊信息進行檢測。在檢測用戶名和電子郵箱時采用了正則檢測,關于正則表達式可以參考正則表達式部分內容。4.3注冊后臺處理數據庫交互//包含數據庫連接文件include('conn.php');$result=@mysqli_query($conn,"selectuidfromuser222whereusername='$username'")ordie("SQL語句執(zhí)行失敗!");//執(zhí)行SQL語句//查詢記錄$num=mysqli_fetch_row($result);//檢測用戶名是否已經存在if($num>0){4.3注冊后臺處理數據庫交互exit('用戶名重名!點擊此處<ahref="reg.html">返回</a>重試');}else//寫入數據$password=MD5($password);$regdate=time();$sql="INSERTINTOuser222(username,password,email,regdate)VALUES('$username','$password','$email',$regdate)";4.3注冊后臺處理數據庫交互if($conn->query($sql)===TRUE){exit('用戶注冊成功!點擊此處<ahref="login.html">登錄</a>');}else{echo'抱歉!添加數據失?。?,mysqli_error($conn),'<br/>';echo'點擊此處<ahref="javascript:history.back(-1);">返回</a>重試';}//mysqli_close($conn);4.3注冊后臺處理數據庫交互注冊處理頁面如圖11-2所示。圖11-2注冊處理頁面該段代碼首先檢測用戶名是否已經存在,如果存在則輸出提示信息并立即終止程序執(zhí)行。如果用戶名不存在則把注冊信息寫入數據庫,并輸出對應提示信息。謝謝11.5PHP用戶登錄、退出及用戶中心陳學平

5PHP用戶登錄與退出016用戶中心02目錄015PHP用戶登錄與退出5.1登錄頁面login.html負責收集用戶填寫的登錄信息。<fieldset><legend>用戶登錄</legend><formname="LoginForm"method="post"action="login.php"onSubmit="returnInputCheck(this)"><p><labelfor="username"class="label">用戶名:</label>5.1登錄頁面<inputid="username"name="username"type="text"class="input"/><p/><p><labelfor="password"class="label">密碼:</label><inputid="password"name="password"type="password"class="input"/><p/>5.1登錄頁面<p><inputtype="submit"name="submit"value="確定"class="left"/></p></form></fieldset>javascript檢測及CSS樣式可參考reg.html,本部分略去,可直接查看代碼。登錄前端頁面如圖11-3所示。5.1登錄頁面圖11-3登錄前端頁面5.2登錄處理login.php負責處理用戶登錄與退出動作。<?php

session_start();

if(!isset($_POST['submit'])){exit('非法訪問!');}

$username=$_POST['username'];$password=$_POST['password'];

//包含數據庫連接文件include('conn.php');5.2登錄處理//檢測用戶名及密碼是否正確$result=mysqli_query($conn,"selectuidfromuser222whereusername='$username'andpassword='$password'limit1");if($row=mysqli_fetch_array($result)){//登錄成功$_SESSION['username']=$username;//$_SESSION['userid']=$row['uid'];5.2登錄處理echo$username,'歡迎你!進入<ahref="my.php">用戶中心</a><br/>';echo"<ahref='logout.php'>注銷</a>";//exit;}else{exit('登錄失?。↑c擊此處<ahref="login.html">返回</a>重試');}?>5.2登錄處理該段代碼首先確認如果是用戶登錄的話,必須是POST動作提交。然后根據用戶輸入的信息去數據庫核對是否正確,如果正確,注冊session信息,否則提示登錄失敗,用戶可以重試。該段代碼需要在頁面開頭啟用session_start()函數,參見下面退出處理代碼部分。登錄處理頁面如圖11-4所示。5.2登錄處理圖11-4登錄處理5.3退出處理echo"<ahref='logout.php'>注銷</a>";在登錄頁面中通過上面的代碼,將注銷功能傳送到另一個頁面處理,該頁面是logout.php。代碼如下:<?phpheader('Content-type:text/html;charset=utf-8');//注銷后的操作session_start();//清除Session5.3退出處理<?php

header('Content-type:text/html;charset=utf-8');

//注銷后的操作

session_start();

//清除Session

$username=$_SESSION['username'];

//用于后面的提示信息

$_SESSION=array();

session_destroy();

//清除Cookie

setcookie('username','',time()-99);

setcookie('code','',time()-99);

//提示信息

echo"歡迎下次光臨,".$username.'<br>';

echo"<ahref='login.html'>重新登錄</a>";

?>

5.3退出處理該段代碼實現了注銷功能,同時將用戶的姓名信息存儲,歡迎用戶下次光臨。具體邏輯參看提供的實例代碼。單擊注銷則會注銷。如圖11-5所示。圖11-5退出登錄026用戶中心6用戶中心<?phpsession_start();include("conn.php

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論