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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

functionInputCheck(RegForm){

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

{

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

RegForm.username.focus();

return(false);

}4.1注冊(cè)頁(yè)面javascript檢測(cè)代碼

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

{

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

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注冊(cè)頁(yè)面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注冊(cè)頁(yè)面注冊(cè)表單效果圖如圖11-1所示。圖11-1注冊(cè)效果4.2數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)連接代碼如下:<?php$conn=@mysqli_connect("localhost","root","root");if(!$conn){die("連接數(shù)據(jù)庫(kù)失?。?.mysqli_error($conn));}mysqli_select_db($conn,"db_user");//字符轉(zhuǎn)換,讀庫(kù)mysqli_query($conn,"setcharacterset'gbk'");//寫(xiě)庫(kù)mysqli_query($conn,"setnames'gbk'");?>4.3注冊(cè)后臺(tái)處理reg.php負(fù)責(zé)處理用戶(hù)注冊(cè)信息。4.3注冊(cè)后臺(tái)處理注冊(cè)檢測(cè)if(!isset($_POST['submit'])){exit('非法訪問(wèn)!');}$username=$_POST['username'];$password=$_POST['password'];$email=$_POST['email'];//注冊(cè)信息判斷if(!preg_match('/^[\w\x80-\xff]{3,15}$/',$username)){4.3注冊(cè)后臺(tái)處理注冊(cè)檢測(cè)exit('錯(cuò)誤:用戶(hù)名不符合規(guī)定。<ahref="javascript:history.back(-1);">返回</a>');}if(strlen($password)<6){exit('錯(cuò)誤:密碼長(zhǎng)度不符合規(guī)定。<ahref="javascript:history.back(-1);">返回</a>');}if(!preg_match('/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/',$email)){4.3注冊(cè)后臺(tái)處理注冊(cè)檢測(cè)exit('錯(cuò)誤:電子郵箱格式錯(cuò)誤。<ahref="javascript:history.back(-1);">返回</a>');}本段代碼首先檢測(cè)是否POST提交訪問(wèn)該頁(yè),接下來(lái)根據(jù)注冊(cè)要求(用戶(hù)名3-15字符長(zhǎng)度,支持漢字、字母、數(shù)字及_;密碼不得少于6位)對(duì)用戶(hù)提交的注冊(cè)信息進(jìn)行檢測(cè)。在檢測(cè)用戶(hù)名和電子郵箱時(shí)采用了正則檢測(cè),關(guān)于正則表達(dá)式可以參考正則表達(dá)式部分內(nèi)容。4.3注冊(cè)后臺(tái)處理數(shù)據(jù)庫(kù)交互//包含數(shù)據(jù)庫(kù)連接文件include('conn.php');$result=@mysqli_query($conn,"selectuidfromuser222whereusername='$username'")ordie("SQL語(yǔ)句執(zhí)行失敗!");//執(zhí)行SQL語(yǔ)句//查詢(xún)記錄$num=mysqli_fetch_row($result);//檢測(cè)用戶(hù)名是否已經(jīng)存在if($num>0){4.3注冊(cè)后臺(tái)處理數(shù)據(jù)庫(kù)交互exit('用戶(hù)名重名!點(diǎn)擊此處<ahref="reg.html">返回</a>重試');}else//寫(xiě)入數(shù)據(jù)$password=MD5($password);$regdate=time();$sql="INSERTINTOuser222(username,password,email,regdate)VALUES('$username','$password','$email',$regdate)";4.3注冊(cè)后臺(tái)處理數(shù)據(jù)庫(kù)交互if($conn->query($sql)===TRUE){exit('用戶(hù)注冊(cè)成功!點(diǎn)擊此處<ahref="login.html">登錄</a>');}else{echo'抱歉!添加數(shù)據(jù)失?。?,mysqli_error($conn),'<br/>';echo'點(diǎn)擊此處<ahref="javascript:history.back(-1);">返回</a>重試';}//mysqli_close($conn);4.3注冊(cè)后臺(tái)處理數(shù)據(jù)庫(kù)交互注冊(cè)處理頁(yè)面如圖11-2所示。圖11-2注冊(cè)處理頁(yè)面該段代碼首先檢測(cè)用戶(hù)名是否已經(jīng)存在,如果存在則輸出提示信息并立即終止程序執(zhí)行。如果用戶(hù)名不存在則把注冊(cè)信息寫(xiě)入數(shù)據(jù)庫(kù),并輸出對(duì)應(yīng)提示信息。謝謝11.5PHP用戶(hù)登錄、退出及用戶(hù)中心陳學(xué)平

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

session_start();

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

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

//包含數(shù)據(jù)庫(kù)連接文件include('conn.php');5.2登錄處理//檢測(cè)用戶(hù)名及密碼是否正確$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,'歡迎你!進(jìn)入<ahref="my.php">用戶(hù)中心</a><br/>';echo"<ahref='logout.php'>注銷(xiāo)</a>";//exit;}else{exit('登錄失??!點(diǎn)擊此處<ahref="login.html">返回</a>重試');}?>5.2登錄處理該段代碼首先確認(rèn)如果是用戶(hù)登錄的話,必須是POST動(dòng)作提交。然后根據(jù)用戶(hù)輸入的信息去數(shù)據(jù)庫(kù)核對(duì)是否正確,如果正確,注冊(cè)session信息,否則提示登錄失敗,用戶(hù)可以重試。該段代碼需要在頁(yè)面開(kāi)頭啟用session_start()函數(shù),參見(jiàn)下面退出處理代碼部分。登錄處理頁(yè)面如圖11-4所示。5.2登錄處理圖11-4登錄處理5.3退出處理echo"<ahref='logout.php'>注銷(xiāo)</a>";在登錄頁(yè)面中通過(guò)上面的代碼,將注銷(xiāo)功能傳送到另一個(gè)頁(yè)面處理,該頁(yè)面是logout.php。代碼如下:<?phpheader('Content-type:text/html;charset=utf-8');//注銷(xiāo)后的操作session_start();//清除Session5.3退出處理<?php

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

//注銷(xiāo)后的操作

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退出處理該段代碼實(shí)現(xiàn)了注銷(xiāo)功能,同時(shí)將用戶(hù)的姓名信息存儲(chǔ),歡迎用戶(hù)下次光臨。具體邏輯參看提供的實(shí)例代碼。單擊注銷(xiāo)則會(huì)注銷(xiāo)。如圖11-5所示。圖11-5退出登錄026用戶(hù)中心6用戶(hù)中心<?phpsession_start();include("conn.php

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論