ここでは管理者側は ID とパスワードを設 定しログインできたら記事作成や編集が できるようになるようにしたいと思いま す。
必要なことは
・管理者のユーザーID とパスワードの登 録
・新規登録の処理
・管理者モードに行くためのログイン処 理
1. ユーザーモードからログインの画面 に移る。
2. ログインで ID と password を入力さ せ、管理者メニューの画面に移り、ID、
パスワードを確認して OKならセッショ ンを開始する。駄目なら戻る。
3. セッションを確認するための
ログインしたときには、セッション を開始する。
ログアウトしたときには、セッショ ンを破棄する。
・管理者モードのすべてのページで、管 理者としてログインしているかどうかを 確認する。
kanrisha_shinki
↓
kanrisha_kakunin
↓
kanrisha_touroku login
↓
login_kanrisha
↓
kanri_header
→login_check
管理者のすべてのページで
kanri_header.php を require_once で読み 込む
① データベース作成(password.sql)
② ID、パスワード作成(kanrisha̲shinki.php)
③ 確認(kanrisha̲kakunin.php)
④ 登録(kanrisha̲touroku.php)
⑤ ログインページ(login.php)
⑥ ログイン処理(login̲kanrisha.php)
⑦ 自動的にログインページに (login̲check.php)
⑧ ログアウト(logout.php)
①データベース作成(password.sql)
ID、パスワードを作るために新しくデー タベースを作ります。
password.sql を作成します。
user というテーブルを作る
項目は、id、name, password
名前とパスワードは varchar(255)、id はいつもの id
もちろんターミナルで MySQL に読み込 ませてね
②ID、パスワード作成 (kanrisha_shinki.php)
shinki.php と同じように ID とパスワード
を入力できるページを作ります。
form で kanrisha_kakunin.phpに送る テーブルで
ユーザー名(ID)とパスワードを入力 できるように
</table>
ボタンで確認、クリア</p>
③確認(kanrisha_kakunin.php)
<?php
送られてきたデータを受け取る; 名前(ID)とパスワード
の両方を入力しないとダメ
?>
form で kanrisha_touroku.php に送る テーブルで
送られてきたユーザー名(ID)と パスワード表示
hidden でユーザー(ID)とパスワードを送
る
ボタンで登録、戻る
④登録(kanrisha_touroku.php)
<?php
送られてきたユーザー名 パスワードを受け取る;
$password_hash =
password_hash($password, PASSWORD_DEFAULT);
sql文でユーザー名とパスワードを登録; sql文をデータベースに送信し、その結果 を受け取って変数($result)に代入;
エラーチェック
新規管理者の登録に失敗しました } else {
管理者を登録しました session_start();
$_SESSION['kanrisha'] = $name;
}
?>
⑤ログインページ(login.php) ログインページなので
kanrisha_shinki.php と中身は同じです。
form で送るのは login_kanrisha.php で す。
⑥ログイン処理(login_kanrisha.php)
<?php
db_access.phpを読み込む
ユーザー名、パスワードを受け取る; sql文で neme が$name のものを取り出 す;
その$sql を mysqlに送信して、検索結果
を$data に代入
$result で受け取ったデータを while
($record = $data->fetch_assoc()) で表示
$db_password = $record['password'];
$login = password_verify($password,
$db_password); #password_verify はパス ワードがハッシュにマッチするかどうか を調べる
もしパスワードがマッチしたら session_start();
$_SESSION['username'] =
$name;
header('Location: kiji_itiran.php');
exit;
} }
header('Location: login.php');
?>
# header 関数で別ページにリダイレクト
する。
リダイレクトとは、WEB ページに訪れた ユーザーに別の URL を自動的に見せるた めのしくみです。
header 関数では、Location と書いてか
ら、飛び先の URL を書きます
⑦自動的にログインページへ
まず、login_check.php を作成します。
<?php
session_start();
if (isset($_SESSION['username']) ==
false) {
login.php にリダイレクト
}
?>
次に kanri_header.php に login_check.php
require_once でを読み込ませます。
これで管理側に移動した時に自動的にロ グインページへ移行されます。