【まとめ】ちゃんと動く問い合わせフォームの作り方【2019年12月版】

HTML
スポンサーリンク

こんにちは朱夏です。

今回は、テスト環境でちゃんと動くフォームを作成できたので、それをまとめてみたいと思います。
必要なものは、ちゃんと動くフォームとちゃんと動くテスト環境の2つでした。
手順は大きく分けて次の3ステップだけです。


手順

1.問い合わせフォーム作成
2.XAMPPセットアップ
3.結果確認

 

それぞれの手順で躓かないためのポイントも説明しつつやっていきたいと思います。

 

手順1.問い合わせフォームを作成

ここが一番重要です。
以下のポイントに注意して作るといいと思います。

    • 段階を踏んで1つずつ実装する
    • 実装したものを確認する
    • 上手くいかなかったらその場で調べる

因みに、参考にしたサイトはこちらです。
私の場合、Bootstrapでスタイルを指定しているので、CSSは殆ど使用していません。
フォームの画面遷移だとか、データの受け渡しなどのPHP部分の書き方や動きのしくみを参考にしています。

完成するまではvar_dump($_POST);を有効にしておくと良いです。

 

私個人としての躓きポイントと改善策を書いておきます。

躓き1:$_POSTでのデータの受け渡しがうまくいかなかった
→Bootstrap4の場合、<input>にname属性を付ける必要がある。

説明1:$_POST[“name”]に値が入る仕様の為

躓き2:ボタンを押しても確認ページに遷移しない
→Bootstrap4の場合、ボタンに任意のvalue属性を付ける必要がある。

説明2:ボタンが押された時、valueの値が$_POSTに入るため。そして、ページ切り替えフラグとなっているif文では、ボタンのname属性が空ではなかった場合、フラグを立てるようになっている。躓き3:mb_send_mailの$header関数を複数追加するとエラーになる
→String型ではなく、array型で渡すことで回避できた。

説明3:PHP公式マニュアルより、String型で複数指定する場合、環境によってはRFC2822に違反するような最終手段を取らなければいけない場合があるなど、安定してフォーム構築に使える記述に思えなかったので、array型を採用した。

 

サンプルコードはこちらです。

 

 

2.XAMPPセットアップ

XAMPPのセットアップでやることは以下の2つになります。

    • インストール
    • .iniファイルの編集

参考サイトは以下になります。

 

 

トラブル回避や説明を理解しやすくするために、インストール先はデフォルトのc:\直下がいいと思います。
また、フォームの送信を行うためには.iniファイルを編集が必要になります。
編集した後はApacheの再起動が必要なので忘れないようにしましょう。

.iniファイルの編集内容は以下になります。

php.ini

 

sendmail.ini

設定は使用するメールサービスによって可変になります。
今回はgmailの場合の設定を仮で入力しています。
※error_logfileの設定はデフォルトなので、そのまま有効にしておきましょう。
 .iniファイルと同じディレクトリにログファイルが生成されます。

 

gmailを使用する場合
gmailは2段階認証できないデバイスからのログインをするためのアプリパスワードを発行して、smtpサーバのログインパスワードに設定する必要があります。
アプリパスワードはgoogleアカウントのセキュリティ画面で2段階認証をオンにすると発行できるようになります。

 

3.結果確認

準備したフォームとテスト環境で、結果を確認します。
確認するときのポイントを以下にまとめておきます。

 

・var_dump($_POST);は有効にしておく
・error.logを確認できるようにしておく
・フォームの受信アドレスの内容を確認できるようにしておく

 

総じて、正常に送信出来ているか確認するための情報がすぐに確認できるように準備しておくことがポイントですね。

 

まとめ

手順通りであれば、ちゃんと動く問い合わせフォームが完成しているはずです。
もしうまくいかないのであれば、以下の様な全ての状態を私と同じにすることで結果を確認してみてください。

    • コードはコピペしたものを使う
    • XAMPPを使う
    • gmailを使う

ちゃんと動いたら、そこから自分の理想の環境で動作する様に1つずつ変化させていってください。
動かなくなったタイミングで順番に改善していけばゴールにたどり着くはずです。

全ての状態を合わせても動かない場合は、XAMPPの環境構築に失敗している可能性があります。
インストールするディレクトリなども完全に一致させてみてください。

それでもうまくいかない場合は・・・コメントいただければ私の方でも調べてみたいと思います。

今回は以上になります。

 

タイトルとURLをコピーしました