お問合せフォームのトラブルシューティング

あまり一般的なケースではないけれど、結構解決に苦労したのでメモに残しておく。

森を走ろう!は、過去の経緯もあり、今は主にWordPressで動いているが、一部xoopsや自前スクリプトで動いているところもある。

お問合せフォームは、WordPressは一番人気の高いプラグイン(Contact Form 7)を導入しました。フォームは簡単に作れたのですが、送信ボタンを押すと、その右に実行中のマークが現れグルグル回るばかりで、いっこうに送信完了のメッセージがでません。

このプラグインでは、送信時の内容チェックはjavascriptで処理され、それがOKだとフォームの内容をブラウザからサーバ側に ajax機能で送信し、サーバ側がそれをメール送信し、完了すると完了メッセージがサーバ側からブラウザ側に ajax機能で返信されてjavascriptがメッセージを表示するという仕組みです。

一方、森を走ろう!はWordPressだけで動いているわけではないので、要求されたurlを、サーバ側で一番最初に動くindex.phpで判別し、適切なプログラムを呼び出すようにしています。ブラウザのアドレスバーに現れるurlは、適切に割り振るようにしていたのですが、上記のajax機能で要求されるurl(サイトアドレス/wp-json/…)はブラウザの裏側でやりとりされているので見落としてしまいWordPressと判断するようにしてませんでした。そのため、ブラウザ側のjavascriptに正しい返信が戻らずにエラーになっていたのです。したがって、対応は、index.phpの判断ロジックにajax用のurlを追加する事で出来ました。

判ってしまえば当たり前の話ですが、ああでもないこうでもないと試行錯誤の繰り返しで、最後は地道にプラグインのスクリプトincludes/js/script.phpからコンソールログ(console.log())で通過点や生成されたurlを出力するようにして判明しました。

また上記対応をした後ですが、別件でデバッグのために初期設定のphpスクリプトにecho文を埋め込んで、また送信できなくなってしまいました。echo文の出力がajax機能での返信データとみなされてしまったためです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です