• 検索結果がありません。

管理者側のパスワード管理

ドキュメント内 ブログ制作教材 (ページ 43-48)

ここでは管理者側は 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 でを読み込ませます。

これで管理側に移動した時に自動的にロ グインページへ移行されます。

ドキュメント内 ブログ制作教材 (ページ 43-48)

関連したドキュメント