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

・index.php
・mypage.php
フォームをつくる(index.php)
会員制サービスでは、IDとパスワードを入力して
ログインしますよね。
今回はそのIDとパスワードを入力するフォームを作成していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<!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タグについて
1 |
<form action="./mypage.php" method="POST"></form> |
actionは上記のサンプルで「ログイン」ボタンを押した後に
画面遷移するURLを指定できます。
画面遷移をさせない場合は、
<action="">
と入力、もしくはaction自体の記述をなくしましょう。
method:データの送信方法を指定
methodは、データの送信方法を指定します。
- GET
- POST
の二つのデータ送信方法があります。
GET:URLに送信内容が含まれ送信
POST: HTTPリクエストの本文で送信
遷移先ページをつくる(mypage.php)
では、続いては
action=””で指定した遷移先ページを作成していきます。
今回は、DB接続等を一切行わず
変数として持たせておきます。
実際は、DBと接続をして処理をします。
セキュリティを考慮してませんので練習用でお使いください。
・パスワードのハッシュ化も省略
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?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に遷移したときにエラーを出さないため
1 |
if(!isset($_POST['check'])) header('location: index.php'); |
②ユーザIDとパスワードが一致するかを確認
ユーザIDとパスワードが一致するかを確認します。
もしもどちらかが異なればindex.phpに返すようにしています。
・ユーザIDとパスワードを比較しています。
1 2 3 |
if($_POST['user_id'] != $user_id || $_POST['password'] != $password){ header('location: index.php'); } |
③ユーザIDとパスワードが一致
ユーザIDとパスワードが一致するときに
mypage.phpの中身を見せます。
1 |
<h2><?php echo $user_id; ?>さんようこそ</h2> |
ログインが完了するとログインユーザIDが表示されたページが出ます。
おわりに
DBからユーザID、ユーザパスワードを出してくる処理や
セキュリティ、バリデーションチェックなどを加えると複雑な処理に感じますが、
シンプルに書くとこんなにシンプルな処理です。
もしもこの処理が簡単に実装できるようになったら、
DBとの接続処理などをトライしてみましょう!
プログラミングスクール無料体験・カウンセリングを徹底比較。オススメ5選をご紹介!
最後まで読んでいただきありがとうございました。
コメント