お問い合わせフォーム設置編:PHPを使って自前で安全に導入する方法

公開日:2026年8月3日

ホームページを開設したら、次に準備したいのが訪問者からの連絡を受け取る「お問い合わせフォーム」です。

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つのステップで完了します。

4. まとめ:自社に合った方法で信頼されるホームページを目指そう

ホームページにおけるお問い合わせフォームは、訪問者とのコミュニケーションを生み出し、サイトの信頼性を向上させるための大切な要素です。

自前でPHPプログラムを構築することで、外部サービスに頼らず自社サーバー内のみで安全にお問い合わせを管理することができます。

ぜひこの機会にお問い合わせフォームを設置し、より便利で信頼されるホームページづくりを目指してみてください。