【PHP講座】お問い合わせフォーム

お問い合わせフォーム

※この記事は「2021年4月20日」に更新しました。

そういえば、お問い合わせフォームについての記事を書いていなかったので、今回はこのテーマで書いていきます。

自分でつくる場合、セキュリティに注意する必要がありますが、PHP だと比較的簡単につくることができます。

ぱそた
SE、Web制作、販売を経験した管理人が解説します。



お問い合わせフォームの機能

お問い合わせフォームの一般的な流れを紹介します。

まず、ユーザーが送信内容を入力する画面が必要になります。

次に、間違ってクリックして送信されることを防ぐために、確認画面もあった方が良いです。

最後は、お問い合わせの内容をメール送信して、送信完了画面を表示させます。

つまり、画面遷移は、入力画面 → 確認画面 →(送信処理)→ 送信完了画面 となります。

入力画面

ユーザーに入力してもらうページを用意します。

細かい説明は省きますが、以前書いた下記記事が参考になります。

フォームの作成

【HTML講座】フォームの作成

2018年9月25日

formタグの action属性には、次に紹介する確認画面のファイル(PHPファイル)を指定します(method属性は、もちろん post で)。

これで送信ボタンをクリックすれば、確認画面(PHPファイル)に値を渡すことができます。

確認画面

ここで、フォームから入力された値をチェックします。

例えば、悪意のあるコードはそのコードが実行されないように処理したり(htmlspecialchars関数など)。

入力した内容が空白ではないかチェックします。

この部分に関しては、下記記事が参考になるかと思います。

POSTとGET

【PHP講座】POSTとGET

2018年9月3日

ポイントは、定義済みの連想配列 $_POST に inputタグ(入力画面)の name属性の値をキーとして、入力した値がそれぞれ保管されることです。

送信処理

送信処理をします。

問題が発生しなければ、リダイレクトさせて、次の送信完了画面を表示させます。

リダイレクトをするには、header関数を使います。

メール送信には日本語メールの場合、mb_send_mail関数を使います。

この処理に関しては、まだ説明していなかったと思うので、詳しくは別記事で紹介します。

mb_send_mail関数でメール送信

【PHP講座】mb_send_mail関数でメール送信

2019年6月20日

送信完了画面

確認画面の内容をメール送信した後、表示させる画面です。

最後に

いかがでしょうか。

お問い合わせフォームも実際制作してみると、実用的なものは意外と面倒なことがわかるかと思います。

ユーザーが入力した値のチェック、管理者にメールが送られたかどうか、ユーザーにメールが送られたかどうか。

場合によっては、データベースに保存することも考えた方が良いかもしれません。

とりあえず簡単なものをつくってみて、自分で操作しながら、改良を重ねていくと、勉強になるかと思います。

次回は、実際にメール送信する処理の部分を紹介する予定です。