お問い合わせフォーム設置編:PHPを使って自前で安全に導入する方法
ホームページを開設したら、次に準備したいのが訪問者からの連絡を受け取る「お問い合わせフォーム」です。
SNSやメールアドレスの掲載だけでも連絡を取ることはできますが、専用のフォームを設置することで、訪問者にとっての利便性とサイトの信頼性が大きく向上します。今回は、お問い合わせフォームを設置するメリットと、PHPを使った自前での導入方法について解説します。
この記事のポイント
- 設置のメリット:訪問者が手軽に連絡でき、必要な情報を正確に取得できる
- 自作時の注意点:送信処理やセキュリティ対策を理解して構築する必要がある
- 自社サーバーでの構築:HTMLとPHPを組み合わせることで自前で完結可能
1. お問い合わせフォームを設置するメリットとは?
ホームページにお問い合わせフォームを用意することには、単なる連絡先以上の重要な役割があります。
ユーザーが手軽に問い合わせやすくなる
メールソフトを起動したり、宛先アドレスをコピー&ペーストしたりする手間が省けるため、訪問者がストレスなく問い合わせを行えます。入力項目があらかじめ用意されていることで、何を伝えればよいかが明確になり、問い合わせのハードルを下げる効果があります。
必要な情報を漏れなく収集できる
名前、メールアドレス、件名、お問い合わせ内容など、確認したい項目を必須指定にしておくことで、やり取りに必要な情報を一度で正確に取得できます。これにより、確認の手間や返信のやり取りを最小限に抑えることができます。
サイトの信頼性と安心感が向上する
適切な問い合わせ窓口が整っているホームページは、訪問者に「しっかり運営されている」という印象を与えます。ビジネス用途はもちろん、個人サイトや趣味のページであっても、誠実な印象を伝えるための重要な要素となります。
2. 自前でプログラムを構築する際のリスクと注意点
外部サービスを使わずに自社のサーバー上でプログラムを動作させる場合、安全に運用するための注意点を押さえておく必要があります。
スパム攻撃や不正利用の対策が必要
対策が不十分なフォームは、自動プログラムによる大量の迷惑メッセージ(スパム)の送信先にされる危険性があります。悪意あるデータを受け取らないよう、入力内容のチェック処理を組み込むことが大切です。
個人情報の取り扱いと安全性の確保
お問い合わせフォームでは、名前やメールアドレスといった重要な個人情報を扱います。SSLによる通信の暗号化や、プログラム側での適切なエスケープ処理を行うことで安全性を確保します。
3. 簡単なPHPプログラムを使った設置手順とサンプルコード
自社のサーバー内で安全にお問い合わせフォームを完結させたい場合は、入力用のHTMLファイルと送信処理用のPHPファイルの2つを作成します。
サンプルコード1:入力用HTML(contact.html)
訪問者が情報を入力する画面です。formタグのaction属性に、送信処理を行うPHPファイル名を指定します。
<form action="mail.php" method="post">
<label for="name">お名前:</label><br>
<input type="text" id="name" name="name" required><br><br>
<label for="email">メールアドレス:</label><br>
<input type="email" id="email" name="email" required><br><br>
<label for="message">お問い合わせ内容:</label><br>
<textarea id="message" name="message" rows="5" required></textarea><br><br>
<button type="submit">送信する</button>
</form>
サンプルコード2:送信処理用PHP(mail.php)
HTMLから送られてきたデータを受け取り、安全にエスケープ処理を行った上でメールを送信するプログラムです。
<?php
// 送信先のメールアドレス(ご自身のアドレスに変更してください)
$to = "your-email@example.com";
$subject = "ホームページからのお問い合わせ";
// フォームからの入力データを受け取り・安全対策(エスケープ処理)
$name = isset($_POST['name']) ? htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8') : '';
$email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_EMAIL) : '';
$message = isset($_POST['message']) ? htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8') : '';
// メール本文の作成
$body = "ホームページよりお問い合わせがありました。\n\n";
$body .= "■お名前\n" . $name . "\n\n";
$body .= "■メールアドレス\n" . $email . "\n\n";
$body .= "■お問い合わせ内容\n" . $message . "\n";
$headers = "From: " . $email;
// メール送信処理
if (mb_send_mail($to, $subject, $body, $headers)) {
echo "送信が完了しました。お問い合わせありがとうございます。";
} else {
echo "送信に失敗しました。時間をおいて再度お試しください。";
}
?>
【実践】PHPフォームを設置する具体手順
上記のコードを使ってサーバーにお問い合わせフォームを設置する流れは、以下の4つのステップで完了します。
- ステップ1:入力用のHTMLファイルを用意する
上記のHTMLコードを参考に、`contact.html` などのファイル名で保存します。 - ステップ2:送信処理用のPHPファイルを作成する
PHPコード内の `$to` のメールアドレス(`your-email@example.com`)をご自身のアドレスに書き換え、`mail.php` という名前で保存します。 - ステップ3:サーバーにアップロードする
作成した2つのファイルを、自身のサーバーの同じフォルダ内にアップロードします。 - ステップ4:動作確認を行う
ブラウザで `contact.html` にアクセスし、テスト送信を行って実際にメールが届くか確認すれば完了です。
4. まとめ:自社に合った方法で信頼されるホームページを目指そう
ホームページにおけるお問い合わせフォームは、訪問者とのコミュニケーションを生み出し、サイトの信頼性を向上させるための大切な要素です。
自前でPHPプログラムを構築することで、外部サービスに頼らず自社サーバー内のみで安全にお問い合わせを管理することができます。
ぜひこの機会にお問い合わせフォームを設置し、より便利で信頼されるホームページづくりを目指してみてください。