コンテンツへスキップ


ログインして会員専用ページを開く

てのが前回の記事

換言すれば
ログインしてない状態では
会員専用ページが見れないようになってて
その仕組みにもセッションが使われてるのだ

というコトは
会員専用ページを増やす時には
同じようにその仕組みを組み込む必要がある

でもこれって実は
管理者がログインした場合に
管理者専用のページを開くために作ってるので・・・

PHPしっかり入門教室

上記の書籍に従ってmember.phpとしたのを
まずはmenu.phpとファイル名を変更して
インクルードするファイルも
合わせてmenu_view.phpにするので
ファイルを開いて以下を変更

// include_once('member_view.php');
include_once('menu_view.php');

そしてmember_view.phpをコピペして
menu_view.phpのファイルを作成したら
各編集画面へのリンクを作成

<!--
<ul>
    <?php foreach($members as $member): ?>
    <li><?php echo html_escape($member['name']); ?></li>
    <?php endforeach; ?>
</ul>
-->
<p><a href="news.php">お知らせ</a></p>
<p><a href="toppage.php">トップページ</a></p>
<p><a href="list.php">リスト</a></p>
<p><a href="food.php">フード</a></p>
<p><a href="drink.php">ドリンク</a></p>

そして各編集画面のページを
構成するPHPファイルを
同じ手順で作成

ここまでの課題をこなすのに・・・

1、PHPの本6冊のその課題の部分だけ
次々と読んでは
気付いたりしたコトをメモ(紙)

2、最も課題に適してるプログラムを選んで
実際にテスト

3、上手くいったら
その経過、コード、表示画面を
ブログにアップ

と、そんな手順で進めてたが
クッキーとセッションについては
最も初心者用と思われる
「誰もがあきらめずにすむPHP超入門」と

誰もがあきらめずにすむPHP超入門

自分から見ると最も難易度が高く感じる
「はじめてのPHPプロフェッショナル開発」には

はじめてのPHPプロフェッショナル開発 PHP7対応

なんと該当ページが無かった!!

でもセッションはログイン認証には必須なので
ログイン認証の項目を探すと
「~超入門」では最後に
「なんちゃってSNS」を作成する項目があるも
確かにログイン認証をしてはおらず
SNSってか、要はBBSだったw

そして「~プロフェッショナル開発」の方は
CakePHPのAuthコンポーネントを使って
ログイン画面の実装をしてた!

個人的にCakePHPはもう古いと思ってたので
最新の(2019年3月に出てる)
最も難易度高い(と感じる)教則本に載ってるってのは
度肝を抜かれた^^;

CakePHPやLaravelなんかを使った方が
セキュリティ的にも良さそうだけど
それやっちゃうとPEARに頼ってた時と同じで
PHP自体がおざなりになる気がするので
フレームワークやライブラリ使わず
実装していこうかと・・・

クッキーとセッションについては
たまたま続けて以下の書籍のコードを
使用ってか、参考にしたので
ログイン認証もこの本の通りにやってみよう^^

PHPしっかり入門教室

p221にある通りに
MySQLにmembersテーブルを作成

この後、今までの自分流のやり方だと
データベースにテストアカウントを直に登録して
いきなりlogin.phpを作成して
一先ず、ログインできるか確かめてたのだが
今回はその前に設定ファイルや関数ファイルを用意

設定ファイルconfig.php(p223)

define('定数', '設定した値');ってのは
XOOPSで表示名を変更するのに弄ったわ、なるほどね

そして関数ファイルときたら
function.phpだと決めつけて
そう名前をつけた空ファイルを用意して
次のページ(p224)へ進んだら
なんと2つのファイルに分けて使うってコトで
db_helper.phpとextra_helper.phpだった・・・バタリ ゙〓■●゙

で、次こそlogin.phpかと思いきや
signup.php・・・ヾ(・_・;)ぉぃぉぃ

長くなり過ぎるから続きは次回だ

前回のクッキーに引き続き
今回はセッション

以下の書籍のP202~
「セッションの仕組みを理解する」を参考に

PHPしっかり入門教室

ユーザ名(user_name)が モモイロ
種(spicies)が オオカミ の場合
session_set.php

$_SESSION['profile'] = array('user_name' => 'モモイロ', 'spicies' => 'オオカミ');

リンク先のセッション確認ページ
session_check.php

この モモイロ や オオカミ を
session_check.phpを書き直して
HTMLで表示させてみる

と、ここまでは簡単だ

このセッションを使って
一般会員はログインした状態で
フォーム画面にMySQLのデータを反映させて
上書きできるようにして
管理者はCSVでデータを一括ダウンロードしたい

ざっくりとこんなイメージ

まずはログイン認証だ!