HTML、、ライブラリ取得用php、.env、使い回し用php、DB保存用phpを作成
HTML
formの項目ごとにdivタグで囲む。
labelタグのfor要素と、inputタグ等のname要素が紐付いている。
id要素は複数の値があるタグ(radioやselect)で個別化できる。
昔と違い、今はsubmitはbuttonタグがあって楽。
ライブラリ取得用php
使用するライブラリをPHP Composerが管理しており自動生成。
PHPファイルの冒頭でrequireして本ファイルを呼び出す。
環境変数を登録した.envファイル
DB接続情報が漏洩するとデータが盗まれてしまう。セキュリティのため、DB接続情報は環境変数化する。
PHPファイルでDB接続記述をする際、環境変数を記述するためDB接続情報の中身は見えない。
DB_HOST="mydb"
DB_USERNAME="myuserame"
DB_PASSWORD="mypassword"
DB_DATABASE="mydatabase"
使い回し用php
ライブラリをrequireし、環境変数に代入されたDB接続情報を取得。
使い回しできるようにするために外部ファイルになっている。
// 環境変数の取得
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../..');
$dotenv->load();
// 取得した環境変数は、文字の冗長化を防ぐために単純な変数へ代入して使う
// 公式曰く、「$_ENV」でも「$_SERVER」でも良い。
$dbHost = $_ENV['DB_HOST'];
$dbUsername = $_SERVER['DB_USERNAME'];
$dbPassword = $_ENV['DB_PASSWORD'];
$dbDatabase = $_SERVER['DB_DATABASE'];
// mysqliを使う場合なら、以下のように記述してDBへ接続(あとの記述で使うため変数へ代入)
$dbInfo = mysqli_connect($dbHost, $dbUsername, $dbPass, $dbDatabase);
DB保存用php
使い回し用phpをrequire。
DBへ値を保存する関数(DB接続情報とDB保存用SQL文を取得)を作成。
formの値が正常ならDBへ値を保存し、DB切断する「実行文」を書く。
if文で、formの値が正常ならば($_SERVER['REQUEST_METHOD'] === 'POST')上記SQL文へ仕込む連想配列変数へ代入
// SQL文で使用するために値を連想配列へ代入
$categoryData = [
'atai1' => $_POST['atai1'],
'atai2' => $_POST['atai2']
];
// データベースに接続する
$dbInfo = dbConnect();
// データベースにデータを登録する
createCategory($dbInfo, $categoryData);
// データベースとの接続を切断する
mysqli_close($dbInfo);