PHPを使用して様々なサービスや、サイトを作成しようと思っている人も多い事でしょう。
「PHPサイト公開したけど、ユーザーを限定したい」
「ログインユーザによって別ページを表示させたい」
そういった要望もあると思います。例えば管理者ユーザでログインすれば色々設定できるページへ、一般ユーザでログインすればそのサイトを使用するページに飛ばしたりするようなログインページです。
そこで今回は簡単にログインページを作成して見ようと思います。そしてログインするユーザで別のページを表示させる事も行いたいと思います。
PHPで簡単なログイン画面を作成
わたくしはローカル環境でPHPの環境を構築しています。
同じくパソコン1台のローカル環境でPHPを行いたい場合、下記の記事を参考にしてPHP検証環境を構築して見て下さい。
今回のログインページ構成
ただのログイン画面では面白くないので、管理者とユーザーのパスワードを変えて、それぞれのページに移動する様にします。今回のログインの流れは下記となります。
- ログイン画面を作成して、パスワード入力する
- 管理者パスワードであれば、管理者ページへ。ユーザーパスワードであればユーザーページへ
今回作成するのは下記の3ページです。
ログイン成功時のページを作成
まずはログイン成功した場合のページを、簡単に作成しておきます。
ファイル名:login_success_manager.php
<html>
<head>
<meta charset="UTF-8">
<title>ログイン成功</title>
<link rel="stylesheet" href="css/test.css" type="text/css">
</head>
<body>
<h1>ログイン</h1>
<h2>管理者としてログイン成功しました</h2>
</body>
</html>
ファイル名:login_success_users.php
<html>
<head>
<meta charset="UTF-8">
<title>ログイン成功</title>
<link rel="stylesheet" href="css/test.css" type="text/css">
</head>
<body>
<h1>ログイン</h1>
<h2>ユーザーページにログイン成功しました</h2>
</body>
</html>
簡単なhtmlで作成しました。
ログインページ作成
ではログインページを作成します。ログインページのコードを以下に貼ります。
<?php
if($_POST["pass"] == "manager"){
header('Location: login_success_manager.php');
exit;
}
if($_POST["pass"] == "user"){
header('Location: login_success_users.php');
exit;
}
?>
<html>
<head>
<meta charset="UTF-8">
<title>ログイン</title>
<link rel="stylesheet" href="css/test.css" type="text/css">
</head>
<body>
<h1>ログインページ</h1>
<h2>ログイン</h2>
<form method="POST" action="">
<label>パスワード入力してください</label></br>
<input type="text" name="pass" value=""></br></br>
<input type="submit" value="ログイン">
</form>
</body>
</html>
ログインページのご説明
コードの詳細な説明をします。まず最初のphpの部分の説明になります。
<?php
if($_POST["pass"] == "manager"){
header('Location: login_success_manager.php');
exit;
}
if($_POST["pass"] == "user"){
header('Location: login_success_users.php');
exit;
}
?>
今回の管理者パスワードは「manager」ユーザーのパスワードは「user」にしています。
もしパスワードが「manager」であれば、先程作成した「login_success_manager.php」に移動するコードです。
もしパスワードが「user」であれば、先程作成した「login_success_users.php」に移動するコードです。
<form method="POST" action="">
<label>パスワード入力してください</label></br>
<input type="text" name="pass" value=""></br></br>
<input type="submit" value="ログイン">
</form>
formタグのメソッドは「POST」でactionが空白なので、このページにsubmit(送信)する仕組みです。
inputタグでユーザーに入力する窓を作成しています。
ユーザーが入力した文字列を、passという変数に入れます。
ログインボタンを押すと、このページにパスワードを変数passに入れて送信します。
受け取る側は「$_POST[“pass”]」で取得できますので、先程のPHPでパスワード判定をしています。
ログイン画面でパスワードを入れてログインして見る
では保存して、ログインページを表示して見ます。
管理者としてログイン
では管理者のパスワード「manager」を入力して、ログインボタンを押してみます。
先程作成した管理者ログインページが表示されれば成功です。
ユーザーとしてログイン
では今度はユーザーとしてログインして見ます。パスワードに「user」と入力してログインボタンを押します。
先程作成したユーザーのログインページに、移動出来ればOKです。
ログイン失敗してみる
では最後に適当な文字を入力して、ログインボタンを押してみます。
ログインページのまま、どのページにもいかなければOKです。
PHPで簡単なログイン画面を作成してみるまとめ
今回はPHPとHTMLのformタグを使用して、簡単なログインページを作成しました。
管理者とユーザーでパスワードを分け、それぞれのページに移動するような仕組みにしてみました。