PHPユーザー登録ログインシステムログイン処理ページ
ログイン処理ページ
フローチャートは次のとおりです:
コードは次のとおりです:
<?php session_start(); //登錄處理界面 logincheck.php //判斷是否按下提交按鈕 if(isset($_POST["hidden"]) && $_POST["hidden"] == "hidden") { //將用戶(hù)名和密碼存入變量中,供后續(xù)使用 $user = trim($_POST["username"]);//trim()函數(shù)移除字符串兩側(cè)的空白字符 $psw = md5(trim($_POST["userpwd"]));//密碼使用md5()加密一次,存入數(shù)據(jù)庫(kù) $code = $_POST["code"]; if($user == "" || $psw == "") { //用戶(hù)名或者密碼其中之一為空,則彈出對(duì)話(huà)框,確定后返回當(dāng)前頁(yè)的上一頁(yè) echo "<script>alert('請(qǐng)輸入用戶(hù)名或者密碼!'); history.go(-1);</script>"; }else if($code != $_SESSION[' ver_code']){ echo "<script>alert('驗(yàn)證碼不正確,請(qǐng)重新輸入!'); history.go(-1);</script>"; } else { //確認(rèn)用戶(hù)名密碼驗(yàn)證碼不為空,則連接數(shù)據(jù)庫(kù) $conn = mysqli_connect("localhost","root","root");//數(shù)據(jù)庫(kù)帳號(hào)密碼為安裝數(shù)據(jù)庫(kù)時(shí)設(shè)置 if(mysqli_errno($conn)){ echo mysqli_errno($conn); exit; } mysqli_select_db($conn,"userdb"); mysqli_set_charset($conn,'utf8'); $sql = "select username,userpwd from user where username = '$user' and userpwd = '$psw'"; $result = mysqli_query($conn,$sql); $num = mysqli_num_rows($result); if($num) { echo "<script>alert('成功登錄'); window.location.href='index.php';</script>"; } else { echo "<script>alert('用戶(hù)名或密碼不正確!');history.go(-1);</script>"; } } } else { echo "<script>alert('提交未成功!');</script>"; } ?>
コードの説明:
ダン、ログインを入力してくださいログイン ページでログインをクリックしたときのプロセス- ページは、post メソッドで渡された $_POST["hidden"] が存在するかどうかを判斷し、存在しない場(chǎng)合は、送信が失敗したことを示すメッセージが表示され、畫(huà)面に戻ります。ログイン インターフェイスが存在する場(chǎng)合は、続行します。
- 渡された値を取得し (trim() 関數(shù)を使用して空白文字をフィルターし、md5() 関數(shù)を使用してパスワードを暗號(hào)化します)、それが空であるかどうかを判斷します??栅螆?chǎng)合は、プロンプトが表示されます??栅扦胜?chǎng)合は、続行します
- post メソッドによって渡された検証コード値が、セッション內(nèi)に以前に存在していた検証コード値と等しいかどうかを確認(rèn)します。等しくない場(chǎng)合は、 、確認(rèn)コードが間違っていることを示すプロンプトが表示され、それらが等しい場(chǎng)合は、実行を続行します
データベースに接続し、作成したデータベースを選択し、文字セットを設(shè)定し、データベースにクエリを?qū)g行します。ユーザー名とパスワードがデータベースに存在するかどうかを確認(rèn)し、存在しない場(chǎng)合は、ユーザー名またはパスワードが間違っていることを示すメッセージが表示され、存在する場(chǎng)合はログイン ページに戻ります。ログイン成功を求めるプロンプト ホームページに移動(dòng)します