※この記事は「2021年4月20日」に更新しました。
そういえば、お問い合わせフォームについての記事を書いていなかったので、今回はこのテーマで書いていきます。
自分でつくる場合、セキュリティに注意する必要がありますが、PHP だと比較的簡単につくることができます。
お問い合わせフォームの機能
お問い合わせフォームの一般的な流れを紹介します。
まず、ユーザーが送信内容を入力する画面が必要になります。
次に、間違ってクリックして送信されることを防ぐために、確認画面もあった方が良いです。
最後は、お問い合わせの内容をメール送信して、送信完了画面を表示させます。
つまり、画面遷移は、入力画面 → 確認画面 →(送信処理)→ 送信完了画面 となります。
入力画面
ユーザーに入力してもらうページを用意します。
細かい説明は省きますが、以前書いた下記記事が参考になります。
formタグの action属性には、次に紹介する確認画面のファイル(PHPファイル)を指定します(method属性は、もちろん post で)。
これで送信ボタンをクリックすれば、確認画面(PHPファイル)に値を渡すことができます。
確認画面
ここで、フォームから入力された値をチェックします。
例えば、悪意のあるコードはそのコードが実行されないように処理したり(htmlspecialchars関数など)。
入力した内容が空白ではないかチェックします。
この部分に関しては、下記記事が参考になるかと思います。
ポイントは、定義済みの連想配列 $_POST に inputタグ(入力画面)の name属性の値をキーとして、入力した値がそれぞれ保管されることです。
送信処理
送信処理をします。
問題が発生しなければ、リダイレクトさせて、次の送信完了画面を表示させます。
リダイレクトをするには、header関数を使います。
メール送信には日本語メールの場合、mb_send_mail関数を使います。
この処理に関しては、まだ説明していなかったと思うので、詳しくは別記事で紹介します。
送信完了画面
確認画面の内容をメール送信した後、表示させる画面です。
最後に
いかがでしょうか。
お問い合わせフォームも実際制作してみると、実用的なものは意外と面倒なことがわかるかと思います。
ユーザーが入力した値のチェック、管理者にメールが送られたかどうか、ユーザーにメールが送られたかどうか。
場合によっては、データベースに保存することも考えた方が良いかもしれません。
とりあえず簡単なものをつくってみて、自分で操作しながら、改良を重ねていくと、勉強になるかと思います。
次回は、実際にメール送信する処理の部分を紹介する予定です。