ニュースサイト向けバックエンドログイン機能のPHPネイティブ開発
前回までの講座では、ログイン機能を作る前の準備、テンプレートのインポート、データベースの作成までをご紹介しましたが、前回の講座ではこれらの準備が完了していなかったので、次はログイン機能の作成に入ります。
まず、login.php ファイルを作成する必要があります。このファイルは、ログイン ページの判定と検証を記述するために使用できます。また、ログインの html 部分とログインの php ファイルを記述することもできますphp ファイルに HTML コードを記述できることは誰もが知っているので、一緒に検証判断を行ってください。ただし、それでも別々に書くことをお勧めします。
login.php ファイルを作成したら、最初にデータベースに接続します。これは、後続の検証でデータと比較する必要があるためです。
ここで、ログイン ページに検証コードがある場合は、各ページの先頭で session_start() をオンにする必要があることを述べておきます。そうしないと、検証コードを検証できません。ここにいます 確認コードがあるので session_start() をオンにしました;
コードは次のとおりです:
<?php session_start(); // 连接mysql数据库 $link = mysqli_connect('localhost', 'root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 选中数据库 news为数据库的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 设置mysql字符集 为 utf8 $link->query("set names utf8");
次のステップはフォームによって渡されたデータを取得するには、ユーザーがフォームに入力したユーザー名とパスワードを取得し、データベースと比較して完全に一致しているかどうかを確認する必要があるためです。
<?php $username = $_POST['username'];//获取用户名 $password = $_POST['password'];//获取密码 $code = $_POST['code'];
データを post で送信するか get で送信するかについては、フォームのメソッド属性によって異なります。これが私たちの投稿です!
データを取得したら、ユーザーが入力したデータがデータベースのデータと完全に一致しているかどうかを検証する必要があります。ユーザーは SQL ステートメントを使用してログインし、クエリを実行できます。コードは次のとおりです:
<?php if(!empty($_POST)){ // 查询数据库中是否存在用户信息 $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'] これは、コード検証コード クラスに保存された検証コードです。ユーザー入力と保存の検証に合格する必要があります。結果が一貫していれば合格です。