【ログイン処理】PHPでフォーム作成からログインまで。シンプルな実装をしてみました。

【ログイン処理】PHPでフォーム作成からシンプルなログインまで。 PHP

プログラミング初心者にとってPHPを最初に学ぶ言語にする方は
多くいます。
そんなPHPで今回はログイン処理を作成していきます。

セキュリティを考慮しておりませんので
練習用でご使用ください。
ログイン-ルート
【今回作成するファイル】
・index.php
・mypage.php
スポンサーリンク



フォームをつくる(index.php)

会員制サービスでは、IDとパスワードを入力して
ログインしますよね。
今回はそのIDとパスワードを入力するフォームを作成していきます。

フォーム

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ログイン</title>
</head>
<body>
    <form action="./mypage.php" method="POST">
        <label for="user_id">ユーザID</label>
        <input type="text" name="user_id" id="user_id">
        <br>
        <label for="password">パスワード</label>
        <input type="password" name="password">
        <input type="hidden" name="check" value="check">
        <br>
        <input type="submit" value="送信">
    </form>
</body>
</html>

上記のソースが
ログイン画面となるフォームです。

フリーター・既卒・未経験から正社員へ!キャリアアドバイザーと後悔のない仕事探し「キャリアの実」

formタグについて

<form action="./mypage.php" method="POST"></form>

action:送信先のURLを指定

actionは上記のサンプルで「ログイン」ボタンを押した後に
画面遷移するURLを指定できます。
画面遷移をさせない場合は、
<action="">

と入力、もしくはaction自体の記述をなくしましょう。

method:データの送信方法を指定

methodは、データの送信方法を指定します。

  • GET
  • POST

の二つのデータ送信方法があります。

GET:URLに送信内容が含まれ送信
POST: HTTPリクエストの本文で送信

遷移先ページをつくる(mypage.php)

では、続いては
action=””で指定した遷移先ページを作成していきます。

今回は、DB接続等を一切行わず
変数として持たせておきます。

実際は、DBと接続をして処理をします。
セキュリティを考慮してませんので練習用でお使いください。

・DBとの接続を省略
・パスワードのハッシュ化も省略
<?php 
//実際はDBにリクエストしてIDとパスワードを取得しますが、
//今回は、割愛させていただきます。
//ユーザID
$user_id = "segateway";
//パスワード
$password = "password";
//データが送信されたか?
if(!isset($_POST['check'])) header('location: index.php');
    //データが送信されていたらID検証
if($_POST['user_id'] != $user_id || $_POST['password'] != $password){
    header('location: index.php');
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>マイページ</title>
</head>
<body>
    <h2><?php echo $user_id; ?>さんようこそ</h2>
</body>
</html>

簡単にソースの説明をしますと、

①データが送信されているか確認
直接mypage.phpへ遷移してもindex.phpに返すようにしています。

・フォームからデータが送信されていなかったらindex.phpに遷移します。
例)直打ちでmypage.phpに遷移したときにエラーを出さないため

if(!isset($_POST['check'])) header('location: index.php');

②ユーザIDとパスワードが一致するかを確認
ユーザIDとパスワードが一致するかを確認します。
もしもどちらかが異なればindex.phpに返すようにしています。

・ユーザIDとパスワードを比較しています。

if($_POST['user_id'] != $user_id || $_POST['password'] != $password){ 
   header('location: index.php');
}

③ユーザIDとパスワードが一致
ユーザIDとパスワードが一致するときに
mypage.phpの中身を見せます。

 <h2><?php echo $user_id; ?>さんようこそ</h2>

mypage.php

ログインが完了するとログインユーザIDが表示されたページが出ます。

おわりに

DBからユーザID、ユーザパスワードを出してくる処理や
セキュリティ、バリデーションチェックなどを加えると複雑な処理に感じますが、
シンプルに書くとこんなにシンプルな処理です。

もしもこの処理が簡単に実装できるようになったら、
DBとの接続処理などをトライしてみましょう!

プログラミングスクール無料体験・カウンセリングを徹底比較。オススメ5選をご紹介!

 

最後まで読んでいただきありがとうございました。

コメント

スポンサーリンク




タイトルとURLをコピーしました