PHPで作るお問い合わせフォームの作り方5選

初心者でもできる!PHPで作るお問い合わせフォームの作り方PHP
この記事は約8分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

今日、あなたはPHPでお問い合わせフォームを作成する第一歩を踏み出します。

この記事では、PHPでお問い合わせフォームを作るための基本的な手順を分かりやすく解説します。

また、カスタマイズの方法や注意点についても詳しく説明します。

これを読めば、あなたも自信を持ってPHPでお問い合わせフォームを作れるようになりますよ。

●PHPでのお問い合わせフォームの基本構造

お問い合わせフォームを作るためには、HTMLとPHPの連携が欠かせません。

まずはこれらの関係を理解しましょう。

○HTMLとフォーム

HTMLはウェブページを構成する言語で、フォーム要素を使ってユーザーからの入力を受け付けることができます。

シンプルなお問い合わせフォームのHTMLの例を紹介します。

<form method="post" action="contact.php">
  <label for="name">名前:</label><br>
  <input type="text" id="name" name="name"><br>
  <label for="email">メールアドレス:</label><br>
  <input type="text" id="email" name="email"><br>
  <input type="submit" value="送信">
</form>

このコードでは、form要素を使ってお問い合わせフォームを作成しています。

input要素はユーザーからの入力を受け付け、それぞれ名前とメールアドレスを入力するためのフィールドを提供します。

○PHPとフォームの連携

PHPはサーバーサイドのプログラミング言語で、フォームから送信されたデータを処理するのに適しています。

HTMLのフォームから送信されたデータは、PHPの$_POSTというスーパーグローバル配列を通じてアクセス可能です。

<?php
$name = $_POST['name'];
$email = $_POST['email'];
// ここで$nameと$emailを使って何か処理を行う
?>

このコードでは、$_POST配列から名前とメールアドレスのデータを取り出しています。

この例では何もしていませんが、これらの変数を使ってメールを送信したり、データベースに保存したりすることが可能です。

次に、これらの基礎知識を元に具体的なステップを見ていきましょう。

●PHPでお問い合わせフォームを作るための5つのステップ

PHPでお問い合わせフォームを作るためには、次の5つのステップが必要です。

○ステップ1:HTMLでフォームを作る

まずはHTMLでフォームを作ります。基本的なお問い合わせフォームのHTMLを紹介します。

<form method="post" action="process.php">
  <label for="name">名前:</label>
  <input type="text" id="name" name="name">
  <label for="email">メールアドレス:</label>
  <input type="text" id="email" name="email">
  <input type="submit" value="送信">
</form>

このコードでは、form要素でフォームを定義し、名前とメールアドレスを入力するためのinput要素を作成しています。

また、action属性にはフォームデータを処理するPHPファイルのパスを指定します。

○ステップ2:フォームデータをPHPで受け取る

次に、PHPでフォームから送信されたデータを受け取ります。

下記のコードは、フォームから送信された名前とメールアドレスを受け取るPHPの例です。

<?php
$name = $_POST['name'];
$email = $_POST['email'];
?>

このコードでは、$_POST配列を使ってフォームから送信された名前とメールアドレスを取得しています。

○ステップ3:入力値の検証

入力値の検証は、不適切なデータの送信を防ぐ重要なステップです。

例えば、メールアドレスの形式をチェックすることができます。

<?php
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "無効なメールアドレスです";
}
?>

このコードでは、filter_var関数を使ってメールアドレスの形式をチェックしています。

形式が正しくない場合はエラーメッセージを設定します。

○ステップ4:エラーメッセージの表示

エラーメッセージは、ユーザーが何を間違えたかを知らせるために重要です。

下記のコードはエラーメッセージを表示する例です。

<?php
if (!empty($emailErr)) {
  echo $emailErr;
}
?>

このコードでは、エラーメッセージが設定されている場合(つまり、メールアドレスの形式が正しくない場合)、そのメッセージを表示しています。

○ステップ5:メール送信処理

最後に、フォームから受け取ったデータをメールで送信します。

PHPにはmail関数が用意されており、これを使ってメール送信が可能です。

<?php
$to = "info@example.com";
$subject = "お問い合わせフォームからのメッセージ";
$message = "名前: $name\nメール: $email";
$headers = "From: webmaster@example.com";

if (mail($to, $subject, $message, $headers)) {
  echo "メールが送信されました";
} else {
  echo "メールの送信に失敗しました";
}
?>

このコードでは、mail関数を使ってメールを送信しています。

この例では、送信先のメールアドレス、件名、メッセージの内容、そしてヘッダー情報を設定しています。

mail関数はメール送信に成功したらtrueを返すため、これを利用してユーザーにメール送信の成功・失敗を伝えています。

以上がお問い合わせフォームを作る基本的なステップです。

これらのステップを踏むことで、自分だけのお問い合わせフォームを作成することができます。

●お問い合わせフォームのカスタマイズ方法

基本的なお問い合わせフォームができたら、次はそれを自分のニーズに合わせてカスタマイズしましょう。

○デザインのカスタマイズ

HTMLとCSSを使うことで、フォームのデザインを自由にカスタマイズできます。

色やフォント、配置などを変えることで、自分のウェブサイトに合ったデザインにすることが可能です。

○機能の追加

フォームにはさまざまな機能を追加することができます。

例えば、ファイルのアップロード機能や、自動返信メールの機能などを追加することが可能です。

これらの機能を追加することで、より使いやすく便利なお問い合わせフォームを作ることができます。

●注意点と対処法

お問い合わせフォームを作る際には、次の注意点を頭に入れておくことが重要です。

○セキュリティ対策

お問い合わせフォームは、ユーザーからの入力を受け付けるため、セキュリティ対策は必須です。

具体的には、入力値の検証や、クロスサイトスクリプティング(XSS)対策、SQLインジェクション対策などがあります。

例えば、XSS対策としては、ユーザーからの入力をそのまま表示するのではなく、htmlspecialchars関数を用いてエスケープすることが一般的です。

<?php
$name = htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8');
?>

このコードでは、htmlspecialchars関数を使ってユーザーからの入力をエスケープしています。

この例では、htmlspecialchars関数の第二引数にENT_QUOTESを指定してシングルクォートとダブルクォートの両方をエスケープし、第三引数に’UTF-8’を指定して文字エンコーディングをUTF-8に設定しています。

○エラーハンドリング

エラーハンドリングも重要な要素の一つです。

入力が不完全な場合やメール送信に失敗した場合など、様々なエラーが考えられます。

これらのエラーが発生した際には、適切なエラーメッセージを表示することで、ユーザーに何が起きているのかを理解してもらい、問題解決につなげましょう。

<?php
if (empty($_POST["name"])) {
    echo "名前が入力されていません。";
}
?>

このコードでは、empty関数を使ってユーザーからの入力が空でないかを確認しています。

この例では、もし名前が入力されていなければ、エラーメッセージを表示しています。

まとめ

以上、PHPでお問い合わせフォームを作る方法をご紹介しました。

基本的な構造の理解から、フォーム作成のステップ、カスタマイズ方法、そして注意点まで、一通りの流れを学んでいただけたかと思います。

これらの知識をベースに、自身のウェブサイトやサービスに最適なお問い合わせフォームを実装してみてください。