リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

21-2. 総まとめ②ソーシャルネットワーキングの設計 続

今日は、サイトのページに統一感を持たせるための、プロジェクトの各ページから同じ機能セットにアクセスするファイルと、諸々の設定をします。

んで、昨日もたついた部分の復習を別記事でやります。

1-1. header.php


プロジェクトの各ページから同じ機能セットにアクセスできるようにするため、header.phpを作成します。
header.phpは実際に他のファイルによってインクルードされ、functions.phpをインクルードするファイルです。
これは、各ファイルでは1つのinclude(header.phpをインクルードするだけでok)ということを意味します。

◎header.phpのコード
f:id:taro-blog2323:20161229125315p:plain

冒頭のsession_start関数の呼び出しからスタートします。これは、異なるPHPファイルの間で保持しておきたい値を覚えておくとセッションを開始する関数です。

その次にセッション変数'user'に今、値が代入されているのかを調べて代入されている場合はログインしているとみなして、変数$loggedinをTRUEに設定します。
if..elseを使用して条件分岐させて、ログインしていない場合はhome、sign up、loginリンクだけ表示させて、ログインしてる場合は、他の機能にもアクセスできるようにします。
(若干成長したような気がするのは、一応コードの意味がわかる。。。。)


1-2. setup.php


次はインクルードされる2つのファイル(functionsとheader.php)が使用するMySQLテーブルの設定を行います。

◎setup.phpのコード
f:id:taro-blog2323:20161229131433p:plain

このファイルは結構シビアに入力しないとmysqlエラー地獄に陥ります。
作成するテーブルは以下の名前と列を持ちます。

・members
 ユーザー名用のuser(インデックス化)とパスワード用のpass

・messages
 ID用のid(インデックス化)と作成者用のauth、受信者用のrecip、メッセージのタイプ用のpm、メッセージ用のmessage

・friends
 ユーザー名用のuserと友人のユーザー名用のfriends

・profiles
 ユーザー名用のuserと"about me"のテキスト

1-3. index.php


プロジェクトのホームページを作成します。
ここにユーザーがきて、サインアップを訴求する場所になります。

◎index.phpのコード
f:id:taro-blog2323:20161229133611p:plain

次はちょっと復習の回をもうけますー