【php增刪改查實例】第十八節 - login.php編寫
阿新 • • 發佈:2018-06-08
ray str for -o arr ech gin and 用戶表
1.對用戶名和密碼進行非空判斷(後臺驗證)
$username; $password; if(isset($_POST[‘username‘]) && $_POST[‘username‘] != null){ $username = $_POST[‘username‘]; }else{ echo "<h2 style=‘color:red‘>用戶名不能為空!</h2>"; return; } if(isset($_POST[‘password‘]) && $_POST[‘password‘] != null){ $password = md5($_POST[‘password‘]); }else{ echo "<h2 style=‘color:red‘>密碼不能為空!</h2>"; return; }
2. 進行數據庫鏈接
$conn = mysql_connect("localhost","root","");
$db = mysql_select_db("test",$conn);
mysql_query("set names utf8");
根據用戶名和密碼進行用戶表的查詢,如果用戶存在,那麽查詢出來的數量肯定等於1,否則,認為用戶名和密碼錯誤。還有一種情況,就是單單根據用戶名去查,如果查不到這個用戶名,就提示用戶用戶名不存在。
$sql = "select count(*) as total from tm_users where username = ‘$username‘"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)){ if($row["total"] != 1){ echo "<h2 style=‘color:red‘>該用戶名不存在!</h2>"; return; } } $sql = "select count(*) as total from tm_users where username = ‘$username‘ and password = ‘$password‘"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)){ if($row["total"] != 1){ echo "<h2 style=‘color:red‘>用戶名或者密碼錯誤!</h2>"; return; } } echo "<h2 style=‘color:green‘>恭喜,登錄成功!</h2>";
異步登陸
在上一節中,我們使用的是form表單提交的方式,也就是俗稱的同步登陸。這樣一來,如果後臺不返回數據,那麽用戶什麽都做不了。現在,我們使用sleep函數來模擬後臺執行時間過長的問題。sleep(5000);
如果因為網絡等問題,後臺處理請求的時間過長,用戶除了等待,什麽事情也做不了。這個就是同步提交的一個弊端。
如圖所示,同步就類似於打電話,如果對方不接,打電話的那個人只能一直等待,不想等了,就把電話掛了。如果是異步的方式,就好比兩個人發短信,你什麽時候回復,我就什麽時候看,不會影響我當期所做的任何事情。
現在來演示異步提交。
16.1 把login2.html 拷貝到這個目錄:
C:\xampp\htdocs\5-7\login
打開瀏覽器,訪問地址:http://localhost:8080/5-7/login/login2.html
用戶名和密碼的非空判斷,在前臺JS中也有處理。如果用戶名和密碼都不為空,那麽就會進行異步提交,異步提交采用的是ajax方法,在第281行:
16.2 編寫login2.php
先進行一下登錄成功的測試:
<?php
$resultData = array();
$resultData["errCode"] = 0;
$resultData["errMsg"] = "";
echo json_encode($resultData);
?>
啥也不幹,直接返回沒有錯誤的結果對象,然後login2.html就會進入success方法:
這邊還做了一個小修改,當登錄成功的時候,就去訪問main.html。
16.3 後臺非空判斷
//後臺判斷用戶名和密碼是否為空
$username;
$password;
if(isset($_POST[‘account‘]) && $_POST[‘account‘] != null){
$username = $_POST[‘account‘];
}else{
$resultData["errCode"] = -1;
$resultData["errMsg"] = "用戶名不能為空!";
echo json_encode($resultData);
return;
}
if(isset($_POST[‘password‘]) && $_POST[‘password‘] != null){
$password = md5($_POST[‘password‘]);
}else{
$resultData["errCode"] = -1;
$resultData["errMsg"] = "密碼不能為空!";
echo json_encode($resultData);
return;
}
16.4 驗證用戶名是否存在?
//驗證用戶名是否存在?
$sql = "select count(*) as total from tm_users where username = ‘$username‘";
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs)){
if($row["total"] != 1){
$resultData["errCode"] = -1;
$resultData["errMsg"] = "該用戶名不存在!";
echo json_encode($resultData);
return;
}
}
16.5 驗證用戶名和密碼是否正確?
//驗證用戶名和密碼是否正確?
$sql = "select count(*) as total from tm_users where username = ‘$username‘ and password = ‘$password‘";
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs)){
if($row["total"] != 1){
$resultData["errCode"] = -1;
$resultData["errMsg"] = "用戶名或者密碼錯誤!";
echo json_encode($resultData);
return;
}
}
源碼獲取:https://www.jianshu.com/p/4977bd0073d5
【php增刪改查實例】第十八節 - login.php編寫