ニュースサイト向けバックエンドログイン機能のPHPネイティブ開発
前回までの講座では、ログイン機能を作る前の準備、テンプレートのインポート、データベースの作成までをご紹介しましたが、前回の講座ではこれらの準備が完了していなかったので、次はログイン機能の作成に入ります。
まず、login.php ファイルを作成する必要があります。このファイルは、ログイン ページの判定と検証を記述するために使用できます。また、ログインの html 部分とログインの php ファイルを記述することもできますphp ファイルに HTML コードを記述できることは誰もが知っているので、一緒に検証判斷を行ってください。ただし、それでも別々に書くことをお勧めします。
login.php ファイルを作成したら、最初にデータベースに接続します。これは、後続の検証でデータと比較する必要があるためです。
ここで、ログイン ページに検証コードがある場合は、各ページの先頭で session_start() をオンにする必要があることを述べておきます。そうしないと、検証コードを検証できません。ここにいます 確認コードがあるので session_start() をオンにしました;
コードは次のとおりです:
<?php session_start(); // 連接mysql數(shù)據(jù)庫 $link = mysqli_connect('localhost', 'root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 選中數(shù)據(jù)庫 news為數(shù)據(jù)庫的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 設(shè)置mysql字符集 為 utf8 $link->query("set names utf8");
次のステップはフォームによって渡されたデータを取得するには、ユーザーがフォームに入力したユーザー名とパスワードを取得し、データベースと比較して完全に一致しているかどうかを確認する必要があるためです。
<?php $username = $_POST['username'];//獲取用戶名 $password = $_POST['password'];//獲取密碼 $code = $_POST['code'];
データを post で送信するか get で送信するかについては、フォームのメソッド屬性によって異なります。これが私たちの投稿です!
データを取得したら、ユーザーが入力したデータがデータベースのデータと完全に一致しているかどうかを検証する必要があります。ユーザーは SQL ステートメントを使用してログインし、クエリを?qū)g行できます。コードは次のとおりです:
<?php if(!empty($_POST)){ // 查詢數(shù)據(jù)庫中是否存在用戶信息 $sql = "select * from user where username = '{$username}' and password = '{$password}'"; $result = mysqli_query($link,$sql); $user = mysqli_fetch_array($result,MYSQL_ASSOC);}
データをクエリした後、2 つのデータ セットを比較します:
if($user){ header("Location: index.php"); }else{ echo "<script>alert('賬戶或者密碼錯誤!重新填寫')</script>"; }
これまでのところ、ユーザー名とパスワードがあるので、検証コードがあるので、検証コードも検証する必要があります。ここでは、検証コード クラス
こちら みんなにもシェアしてね!
次に、検証コードを検証する必要があります。コードは次のとおりです:
if(($_SESSION['authcode']) !== ($code)){ //驗證碼作對比,驗證碼頁面跟輸入的驗證碼對比 echo "<script>alert('驗證碼錯誤!重新填寫')</script>";
説明: $_SESSION['authcode'] これは、コード検証コード クラスに保存された検証コードです。ユーザー入力と保存の検証に合格する必要があります。結(jié)果が一貫していれば合格です。