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

お問い合わせフォーム

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

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

それでは見ていきましょう。



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

お問い合わせフォームの一般的な流れとしては、まずユーザーが送信内容を入力する画面が必要になります。

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

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

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

入力画面

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

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

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

2018.09.25

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

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

確認画面

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

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

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

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

【PHP講座】POSTとGET

2018.09.03

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

送信処理

送信処理をします。

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

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

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

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

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

2019.06.20

送信完了画面

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

最後に

いかがでしょうか。

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

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

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

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

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