PHPを独学でがんばる場合、教材の選択が大事ですよね。
私はまずはProgate(プロゲート)でPHPをざっと学習した後、「このあと、どうしよう?」と悩みました。
Progateは良い教材ながら、後半のオブジェクトあたりから、何をやっているか分からず、迷子状態に。
何とか一通り終わらせたものの、まだまだ不十分だと感じていした。
そこで、次は本を使ってPHPの学習を進めてみることにしました。
最初に読んだのは、「PHP入門 確認画面付きのお問い合わせフォームをつくりながらPHPを学ぶ(第2版)」
今回はこちらの本の内容と、実際に作ったお問い合わせフォームの学習記録をレポートします。
「PHP入門 確認画面付きのお問い合わせフォームをつくりながらPHPを学ぶ」の内容
おすすめ度 | ★★☆(星ふたつ) |
---|---|
勉強時間 | 5時間ほど |
費用 | 580円・KindleUnlimited会員は無料 |
学習内容 | PHPを使ってお問い合わせフォームを作る |
Amazonで580円で購入できますが、AmazonのKindle unlimitedに加入していれば、無料で読めます。
プログラミング関連の本もあり、電子書籍好きなら絶対に元が取れるお得なサービスです。
こちらの本は具体的に何が作れるかが明確だったので、選びました。
具体的に次のステップでフォームを作成。
① XAMPPをインストール
XAMPP(ザンプ)とは、ローカル環境でPHPを動かすために必須の環境。
もしまだの方は、ぜひインストールしちゃってください。
② Bracketsのインストール
BracketsとはPHPを記述するためのエディタ。
ただ私はすでにVisual Studio Codeをインストールしていたので、Bracketsはインストールしませんでした。
③ 変数の代入について学ぶ
変数とは、値を入れておく箱のようなもの。
このあたりはProgateでばっちり学習済み。
④ 連想配列について学ぶ
連想配列は、値をいれておく複数の箱のようなもの。
array() を使います。
なおフォームでは、$_POST という連想配列が登場します。
フォームを送信された際、データは自動的に $_POSTに格納されます。
⑤ エラーチェック
フォームを作成した際、もし値が入っていなければエラーを出します。
【PHP側のコード】
これも配列を使って作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$errors = array(); if (isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $subject=$_POST['subject']; $body=$_POST['body']; if ($name == "") { $errors['name'] ="お名前が入力されていません。"; } if ($email == '') { $errors['email'] ="メールアドレスが入力されていません。"; } if ($body == '') { $errors['body'] ="お問い合わせ内容が入力されていません。"; } |
【HTML側(body以下)のコード】
<html>の<body>以下に記入するコードはこちら。
foreachを使います。
⑥ 入力値の保持
このままだと入力した値が保持されません。
追加の処理が必要ですが、まず、htmlspecialchars 関数を使ってセキュリティ強化を図ります。
この関数を使うと、< など、htmlのコードを書くために使う特殊文字を、特殊な意味を持たない単なる文字列に変換できます。
1 2 3 4 5 6 7 |
$name = htmlspecialchars($name,ENT_QUOTES); $email = htmlspecialchars($email, ENT_QUOTES); $subject=htmlspecialchars($subject,ENT_QUOTES); $body=htmlspecialchars($body, ENT_QUOTES); |
この上で、フォームの各項目に、isset 関数を入れます。
⑦ 確認画面へ送るためにデータをブラウザに保存
次は確認画面の作成です。
「空欄がなければ、入力された値を $_SESSIONに格納して、確認画面へうつりましょう。」という命令を次のように書いていきます。
$_SESSIONは、PHPが自動で生成する連想配列。
1 2 3 4 5 6 7 8 9 |
session_start(); if (count($errors)==0) { $_SESSION ['name'] = $name; $_SESSION ['email'] = $email; $_SESSION ['subject'] = $subject; $_SESSION['body'] = $body; header('Location: 確認画面用URL'); exit(); } |
⑧ 確認画面の作成と完了画面の作成
このあとは確認画面と完了画面の作成になります。
正直後半は難しすぎて、そのまま、コピペで入力しているだけの状態でした。
⑨ データベースの作成
phpでデータを格納する場合には、MySQPというデータベースを使います。
ローカル上で使う場合には、XAMPPからMySQLの【Start】ボタンを押して起動させておきます。
MySQL上でのデータベースの設定についても、本に説明がありますが、ここは、それほど難しくありません。
⑩ コードをアップロードする
実際に作ったフォームをアップロードしてみました!
アップの際には、現在使っているXSERVER上でSQLを作らねばならず、ここも試行錯誤しました。
すべてのステップで時間がかかりまくりですが、とりあえず動いたときは、すごい嬉しい。
どんなフォームになるのか気になったら、リンク先フォームを見てみてください。
URL:https://biz.addisteria.com/myworks/php_form/form.php
まとめ
PHPを使って本の通りにお問い合わせフォームを作った状況を解説しました。
foreachやif関数、変数など、覚えたての知識を実際に使い、理解度がアップしました。
Progateや動画教材のように「一部分をさわっている」という気はせず、いちからステップを重ねて何かを作れた達成感は味わえます。
詳しいコードが知りたい方、作ってみたい方は、本をチェックしてみてください。