限定コンテンツについて考える②
おはようございます、佐伯です。そろそろ年末調整の季節ですね。
私はこの時期になると新卒で入社した会社は本決算11月だったなあ…と思います。
さて今回はちょっと伸ばし伸ばしにしていた限定コンテンツの進化版…進化版?むしろこっちの方が主流というかポピュラーかな。【会員登録してからログインして限定コンテンツを表示する】の話。
前回のやつはこれ
今回は取り敢えず【下準備】をやりたい。
いつも通りのアレだけど、もっといい方法は多分あるしこれは正しい手法ではあるけれど大正解ではないということだけ頭の片隅に置いてください。
弊社ちゃんのカッチョが『プログラミングは方法であって結果ではない』という名言を言っていたのでまあ極論結果だけ合ってればええんや
用意したもの
- Visual Studio Code(エディタ。以下vscode)
- xampp
この最低限でこの二点。下は内訳。
エディタに関しては正味なんでもいいです。自分の使いやすいものを使って下さい。エディタは宗教。
ただemmetとかLintとかLive Viewとかようするに拡張機能的なところで
下準備編
環境構築
XAMPPの設定については後日。
phpMyAdminのパスワードとかの設定がうんたらかんたらあります。
取り敢えずディレクトリ(フォルダ)構成は
の構成にしました。
modelとviewに同じ名前のファイルがありますが違うファイルなので、もしも分かりにくい場合は適宜ファイル名を変更して使って下さい。
あと本来であればここにCSSのフォルダとかも必要になってきちゃったりします。
まあ参考程度に私はいつも大体こんな感じ!!MVCのこと意識するまではページとか全部ごった煮でした。ヘヘ
SCSSってなーに?についてもまあ…後日ね…。気が向いた時にね…。
なんか取り敢えずCSSファイルだと思ってくれたらいいです!そこは!!今は!!!
XAMPPを起動して
の二つを動かしておきます。
xamppはcontroll.exeっていうのを起動するとコンパネが開くのでそこから起動してください。
絶対バツで閉じるなよ!!!!!!!Quitボタンで閉じてください。
データベースを作る
前に!!!!!!!
まずどういうデータベースが必要なのかを決めておきます。
必要な情報って人それぞれだからね…。
決めなければならないのは
- データベース名
- テーブル名
- テーブルの中身
の三つ。データベースにはテーブルを複数作れるので他のデータを入れたい時は同じデータベースを使ってオッケーです。
データベースを本、テーブルを章分けだと思うのが分かりやすいかな?
章はいくつでも入るけど本が変わったら変えたいよね~~ってかんじで。
ちなみに今回のデータベースは会員登録をしたユーザーのデータを保持するのに使います。
データベース名:main
テーブル名:userdata
内容
名前 | 内容 | |
---|---|---|
1 | ID | 通し番号 |
2 | userID | ログインID |
3 | password | パスワード |
こんな感じで準備したいと思います。
SQLはこちら。
phpMyAdminで画面上から作ってもどっちでも良いですよ~
こんなの書きましたけど私はいつもphpMyAdminからやっちゃってます。
もっと情報量の多い大きいデータベースとかだとこうやってSQL文書いた方が楽だったりするんですけど、その辺は適宜ってことで。
CREATE DATABASE main; USE main; CREATE TABLE userdata ( ID int(5) NOT NULL AUTO_INCREMENT , userID VARCHAR(20) NOT NULL, password VARCHAR(255) NOT NULL, PRIMARY KEY (ID), UNIQUE(userID) );
AUTO_INCREMENT
は自動採番の機能があるのでIDにつけてます。
つまり何もせずとも何番目に登録した人かが分かるわけだ、便利だね。
登録する情報が少ないと丸被りしちゃう可能性も否めないからPRIMARY KEY
をID、UNIQUE
をuserIDに設定しておきます。
どっちも取り敢えず重複を禁止しているということだけ覚えて下さい。PRIMARYは大体自動採番のとこにつけといたらええんちゃうか…みたいな気持ちでつけてます。
難しいことはあとからでも良いと思う。
とりあえずこれでデータベースの下準備は完了
define と fanction を作る
次にデータベースに接続するための下地を作っておきます。
ファイル:class/define.php
define('DB_HOST','locallhost'); define('DB_USER','root'); define('DB_PASS','hogehoge'); define('DB_NAME','main'); define('TB_user','userdata'); // define('表記名','実際の表記')
defineファイルは固定数の設定場所なので正直作っても作らなくてもどっちでも良いんですけど、何回も書いたり長いものを書いたりするのが面倒なので予め設定しておきます。
他にも繰り返し使う単語があるなら設定しておいても楽かも~~!!
まあ、私はdefineで設定するのはこの辺のデータベース関連だけですけどね。
ファイル:class/function.php
function PDOconnect() { try { $dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8', DB_USER, DB_PASS); } catch (PDOException $e) { var_dump($e); exit; } return $dbh; }
function.php
にデータベースの接続用のプログラムを予め書いておきます。
このfunctionから始まるやつをメソッドと呼びます。
メソッドは~~なんか~~繰り返し使える定型文の設定だと思って下さい。
何回も使いまわしする処理はこうしてメソッド化しちゃいます。
なんでかというと
- いちいち書かなくて済むから
- 修正するときに直すところが一か所でいいから
の二点!何事も使いまわしが大事。お洋服みたいなものですね。
取り合えずここまで ちょっと長くなっちゃいましたけど次回からは中身を作っていこうと思います~!