この記事の要点
- PHPは初心者にも習得しやすいプログラミング言語である
- PHP初心者でも、動画を見ながら簡単に問い合わせフォームや掲示板、ログイン画面が作れる
- WordPressでPHPを学習するのもアリ
以前、PHPの基礎についてご紹介していました。
PHPは、初心者でも比較的習得しやすいプログラミング言語です。
この記事では、主に独学の人に向けて、作りながら学べるPHPプログラムとして
- 問い合わせフォーム
- 掲示板
- ログイン画面
の3つをご紹介します。
独学はモチベーションが続きにくいですが、楽しく作ることで継続しやすくなりますよ。
目次
PHPでできること・得意なことを知ろう
PHPとは、WordPressでも採用されている人気のWeb系サーバーサイドスクリプト言語です。
2022年8月現在の最新バージョンは8.1。
他のプログラミング言語と比べて環境構築が簡単で、習得もそれほど難しくないのが特徴です。
PHPを使えばさまざまなことができます。具体例を挙げると
- ブログ
- 掲示板サイト
- SNSサイト
- ECサイト
- 社内管理システム
- 予約システム
- お問い合わせフォーム
などが挙げられます。
PHPで構築されているシステムの多くは、HTML/CSSやJavascript、さらにデータベースと連携して作られています。
特にMySQLと連携して使われることが多いので、PHPと並行して学習しておくことをおすすめします。
初心者でも作れるPHPプログラムの例3選
初心者でも作れるPHPプログラムを3つご紹介します。
難しければ参考動画を見ながら、チャレンジしてみて下さい。
PHPで問い合わせフォームを作ってみよう
HTMLとPHPを組み合わせて、簡単な問い合わせフォームを作成していきます。
やりたいこと
表示項目は以下の4つです。
- 名前
- メールアドレス
- 本文
- 「送信」ボタン
「送信」ボタンをクリックすると、「名前」「メールアドレス」「本文」の内容が管理用メールアドレスに送信される仕組みです。
同時に、入力した「メールアドレス」にもサンクスメールを送信します。
手順1:HTMLで問い合わせ画面を作る
HTMLのformタグを使い、「名前」「メールアドレス」「本文」と「送信」ボタンを設定します。
データの渡し方は「post」に指定、遷移先は「thanks.php」です。
index.html
<form action="thanks.php" method="post"> 名前:<input type="text" name="customer_name" value=""><br> メールアドレス:<input type="email" name="customer_email" value=""><br> 本文:<br> <textarea name="customer_message" id="" cols="" rows=""></textarea><br> <input type="submit" name="submit" value="送信"> </form>
手順2:PHPでメール送信の処理を作る
formで送信された値は、PHPのスーパーグローバル変数「$_REQUEST」という配列に格納されます。
postで送信されていれば「$_POST」という配列でも参照できます。
次の手順では、formの値を取得してメール送信する処理を作ります。
thanks.php
<?php //入力データを取得する //名前 $customer_name = $_REQUEST["customer_name"]; //メールアドレス $customer_email = $_REQUEST["customer_email"]; //メールアドレス $customer_message = $_REQUEST["customer_message"]; //メールに記載するメッセージを作成する $message = "お問い合わせを受け付けました\r\n" ."名前".$customer_name."\r\n" ."email".$customer_email."\r\n" ."お問い合わせ内容:\r\n" .preg_replace("/\r\n|\r|\n/", "\r\n", $customer_message); //※注 //メール送信 mail($customer_email, "お問い合わせありがとうございます", $message); mail("hoge@fuga.co.jp", "お問い合わせありがとうございます", $message); ?> <p>お問い合わせありがとうございます。</p>
※注
PHPの規定により、メールの改行コードはCRLF (\r\n) 、各行の長さは70文字と決まっています。
詳細はPHPマニュアルを参照してください。
また、Preg_replaceは正規表現により文字列置換を行う関数です。
ここでは、改行コードを一律で「\r\n」に変換する処理を行っています。
さらに試してみよう
さらなる学習として、以下の内容も試してみましょう。
- 必須入力チェックを入れる
- 文字数チェックを入れる
- Eメールの形式チェックを入れる
- 入力画面と完了画面の間に、確認画面を作る
PHPでメールフォームを作ってみよう【プログラミングクッキング】
30分でメールフォームプログラムを作成するチュートリアル動画です。
エラーチェック、セッション変数、POST送信などを学習できます。
サンプルコードもダウンロードできます。
HTMLだけでコンタクトフォーム(お問い合わせフォーム)を作る方法
HTMLとCSSだけでお問い合わせフォームが作れるチュートリアル動画です。
PHPを使わなくでも簡易的にお問い合わせフォームを設置できる「staticforms」の使い方が理解できます。
PHPで掲示板を作ってみよう
HTMLとPHPを組み合わせて、簡単な掲示板を作成していきます。
やりたいこと
表示項目は、以下の3つです。
- 名前
- 本文
- 「投稿する」ボタン
「投稿する」ボタンをクリックすると、「名前」「本文」の内容をテキストファイルに書き込みます。
その後、テキストファイルの内容を掲示板にすべて表示します。
手順1:HTMLで入力画面を作る
HTMLのformタグを使い、「名前」「本文」と「投稿する」ボタンを設定します。
データの渡し方は「post」で、遷移先は自分(index.php)です。
index.php
<p>掲示板</p> <form method="post" action="index.php"> 名前:<input type="text" name="name"><br> 本文:<br> <textarea name="message" rows="" cols=""></textarea><br> <input type="submit" name="submit" value="投稿する"> </form>
手順2:PHPでファイル書き込み処理を作る
次に、入力画面から受け取ったデータをファイルに書き込む処理を入れていきます。
index.php
<?php //データがpostでsubmitされた場合のみ書き込む if($_SERVER["request_method"] == "post") { // ※注1 writeFile(); //長くなるので関数化します } //ファイル書き込み関数 function writeFile() { //入力値を取得する $name = $_POST["name"]; $message = $_POST["message"]; $message = nl2br($message); //改行文字の前にHTMLの改行タグを挿入 //書き込むデータを生成する $input = "<hr>\r\n"; ."<div>投稿者:".$name."</div>\r\n"; ."<div>投稿内容:</div>\r\n"; ."<div>".$message."</div>\r\n"; //書き込みを行うテキストファイルを指定する $boardfile = "test.text"; //ファイルオープン // ※注2 $file = fopen($boardfile, 'a'); //ファイル書き込み if ($file) { if (fwrite($fp, $input) === false) { print("ファイル書き込み失敗"); } } //ファイルクローズ fclose($fp); } ?>
※注1
「$_SERVER」はPHPのスーパーグローバル変数で、POSTやGETのパラメーターはもちろん、サーバのアドレスやヘッダー情報などを確認できます。
ここでは、POSTでパラメータを受け取った場合のみ処理を行っています。
※注2
PHPに限らずプログラム言語において、ファイル操作(読み込み/書き込み)はよく出てくる項目の1つです。
初めは難しいと感じるかもしれませんが、少しずつ慣らしていきましょう。
ここでは、
- ファイルをopen(書き込みができる状態にする)
- ファイルの末尾に入力内容を書き込み
- ファイルをclose(書き込みを終了する)
という処理を行っています。
手順3:PHPでファイル読み込み処理を作る
最後に、書き込んだテキストファイルを読み込んで画面に表示します。
index.php <?php //読み込みを行うテキストファイルを指定する $boardfile = "test.text"; //ファイルオープン $file = fopen($boardfile, 'r'); //ファイル読み込み&出力 $showmessage = ""; if ($file) { while ($line = fgets($file)) { // ※注 echo $line; } } //ファイルクローズ fclose($file); ?>
※注
ファイルを読み込み可能な状態にし、whileループで一行ずつデータを読み込んでいます。
このほかの方法として、ファイルを一括で読み込むfile_get_cotents()関数もあります。
ただし、ファイルのデータ量が多い場合や、どのくらいの量か不明な場合は、上の例のように一行ずつ読み込むほうが無難です。
さらに試してみよう
追加機能として、以下の内容も試してみましょう。
- 書き込み、読み込みの際にファイルをロックする
- ファイル書き込み、読み込みに投稿時間を追加する
プログラミングを使って掲示板を作ろうPart1~Part3【JavaScript,PHP】
ゼロからHTMLとCSS、PHP、JavaScriptを使って簡易掲示板をプログラミングするチュートリアル動画です。
全くの白紙からなのでPHPと組み合わせて使う各種言語についても理解できるようになります。
PHP+SQLでログイン画面を作ってみよう
HTMLとPHP、さらにデータベースを連動して、簡単なログイン画面を作成します。
やりたいこと
表示項目は、以下の3つです。
- ID
- パスワード
- 「ログイン」ボタン
「ログイン」ボタンをクリックすると、「ID」と「パスワード」をデータベースの値と照合し、問題なければTOPページへ遷移します。
手順1:HTMLで入力画面を作る
HTMLのformタグを使い、「ID」「パスワード」と「ログイン」ボタンを設定します。
データの渡し方は「post」で、遷移先は認証用の「auth.php」です。
index.html
<p>掲示板</p> ID:<br> パスワード:<br>
手順2:PHPでDBに接続し認証処理を作る
次に、入力画面から受け取ったデータをDBの値と照合する処理を入れていきます。
auth.php
<?php //入力値を取得する $id = $_POST["id"]; $password = $_POST["password"]; //データベースの接続設定 $dsn = "mysql:dbname=testdb;host=localhost"; $dbuser = "testuser"; $dbpassword = "testpass"; //データベースに接続する $db = new PDO($dsn, $dbuser, $dbpassword); // ※注1 //SQL文を発行する $sql = "SELECT * FROM account WHERE id = '$id' AND password = '$password'"; $stmt = $db->query($sql); //取得件数 $count = $stmt->rowCount(); //合致データが1件ならOK $loginflg = false; if ($count === 1) { // ※注2 $loginflg = true; } //認証OKならTOP画面にリダイレクト if ($loginflg) { header("Location: ./top.php"); } ?>
※注1
MySQLのデータベースにアクセスするため、PDOクラスを使用します。
PDOクラスを利用した接続については、PHPマニュアルを参照してください。
※注2
SQLを発行し、accountテーブルにIDとパスワードの組み合わせが合致するかを確認しています。
IDとパスワードの組み合わせでヒットした件数が1件以外であればエラーと判定します。
ここで使われている「===」は、値だけでなく型まで一致しているかどうかを判断しています。
つまり、int型以外の1であればfalseと判断されます。
さらに試してみよう
上級編として、以下の内容も試してみましょう。
- DBから取得した値を画面に表示する
- 「セッション」を使ったアカウント制御処理を入れる
【PHP】ログイン機能作ってみた【Webアプリ】
Webアプリということで簡単なログイン機能を作れるチュートリアル動画です。
ユーザー名とパスワードでログインしたり、ユーザーの新規登録などよく使う機能を学習できます。
WordPressでPHPとWebデザインを学ぶのもあり!
WordPressでPHPとWebデザインを学ぶという方法もアリです。
世界中のWebサイトの43%ものシェアを誇るWordPressは、PHPとMySQLで作られているオープンソースのCMS。
WordPressはPHPなどのプログラミングをよく知らなくても使うことができます。
しかし、PHPの知識があれば、さらに自由度の高いカスタマイズが可能になるのです。
自作のPHPファイルをアップロードして使ったり、テーマやプラグインを作成したり。
学習しながら自分のサイトのカスタマイズまでできるので、モチベーションを保って続けることができそうですね。
まとめ
PHP初心者の方向けに、作りながら楽しく学べるPHPプログラムをご紹介しました。
PCに向かってドキュメントを読むだけで、プログラミングスキルは上達しません。手を動かし、とにかく慣れることが肝心です。
動画を使っての学習は、どのようにコードを書くのかわかりやすく初心者にはおすすめの方法です。
移動中に聞き流して隙間学習など、柔軟な学習ができるのも嬉しいポイントです。
動画教材や無料学習サイトなどをうまく活用して、PHPプログラマーとしての一歩を踏み出してください。