お問い合わせはコチラから

Contact Form 7 Multi-Step Formsは不具合多いのでビジネスサイトでは避けるべし

サイト運営

Contact form 7で確認画面を表示するプラグインとして、Contact form 7 add confirmが有名でした。

Contact form 7 add confirmの更新が止まってしまったので、Contact Form 7 Multi-Step Formsに乗り換えている人が多いようです。

Contact Form 7 Multi-Step Forms
Enables the Contact Form 7 plugin to create multi-page, multi-step forms.

私は、確認画面が必要なフォームの場合、Contact form 7 add confirmを修正して最新版のContact form 7でも動くようにして使っています。

そろそろ別の方法の方がいいのかもと思い始めていたところです。

Contact Form 7 Multi-Step Formsを使ってみようかと思ったのですが、色々香ばしい感じだったので、やっぱり使うのを止めたところです。

その経緯をまとめておこうと思います。

Contact Form 7 Multi-Step Formsを使うと起きる現象

Contact Form 7 Multi-Step Formsのフォームから、タグのみ表示された空メールが届いてしまう

こちらは使い方で発生する致命的な問題のように見えます。

  1. フォームを途中のページまで入力
  2. 前のページに戻ったりしたり、などしながらフォームページから離脱する
  3. 別の人がフォームを送信するとなぜか前回の離脱したデータでの送信も空データとして管理者宛へ送信されてしまう。
https://qiita.com/sa_meichan/questions/da2f2ba067e891241054

Contact Form 7 Multi-Step Formsで他人が入力された個人情報が確認画面で表示される

Contact Form 7 Multi-Step FormsはXserverで不具合がでやすい

Xserverでサーバー側でページキャッシュが効いてると過去に入力されたフォームの値が他人に表示されてしまうことがあるようです。

Regarding serious cases leading to leakage of personal information
Regarding serious cases leading to leakage of personal information concrecheeseorg (@concrecheeseorg) 3 months ago 個人情報の...

Contact Form 7 Multi-Step FormsはCookieにフォームデータを一時的に保存している

ユーザーの Cookie からの情報はページに表示されます (当然のことですが)。しかし、そのすべての情報を含むページ自体はキャッシュ システムによってキャッシュされています。このキャッシュされたページが取得されると、そのページを訪問したすべてのユーザーに Cookie データが表示されます。

これを修正するには、 cf7msm_で始まるページまたは Cookie を除外するようにキャッシュ システムを構成します。

長文のテキストを送信できない

Contact Form 7 Multi-Step Formsの無料バージョンでは、4KBのテキストしか送信できません。

4kbはおよそ1000~2000文字に相当。

長文のテキストを送りたい場合は、Proバージョンが必要なようです。

マルチステップ フォームから大量のデータが送信されることが予想される場合は、Pro バージョンの方が適している可能性があります。PRO バージョンはセッション ストレージを使用するため、複数のフォームで約 1,000 倍のデータを処理できます。合計で約 5 MB を処理できますが、無料バージョンでは 4 KB です。

https://wordpress.org/plugins/contact-form-7-multi-step-module/
contact form 7 multi-step formsで長文が認識されない
サポート » プラグイン » contact form 7 multi-step fo…

Contact Form 7 Multi-Step Formsを使うのを止めた方が安全

Contact Form 7 Multi-Step Formsはキャッシュと相性が悪そうです。

Contact Form 7 Multi-Step Formsは、ステップごとにフォームデータをCookieに保存しています。

Cookieをキャッシュしないようにすれば、問題は起きないと思います。

一方、Contact form 7 add confirmは、Cookieは使用しておらず、ページキャッシュ対策が盛り込まれているように見えました。

add_action( 'plugins_loaded', 'wpcf7c', 11 );

function wpcf7c() {
	wpcf7c_load_textdomain();
	wpcf7c_load_modules();

	nocache_headers();
}

add_filter('nocache_headers', "wpcf7c_nocache_headers", 10, 1);
function wpcf7c_nocache_headers($headers) {

	$headers["Cache-Control"] = "no-store, no-cache, must-revalidate, max-age=0";

	return $headers;
}

レスポンスヘッダに以下を含むコンテンツはキャッシュしません。

  • Cache-Controlに「no-cache」「no-store」「private」「must-validate」のいずれかを含む場合
  • Set-Cookieを含む場合
https://www.xserver.ne.jp/manual/man_server_cache.php

また、キャッシュプラグインなどで cf7msm_で始まるCookieをキャッシュしないように設定する必要があります。

もしキャッシュ対策できたとしても、フォームの遷移動作に関わる部分で、そもそも動作に不具合がありそうなので、ビジネスサイトでは使用しない方が安全です。

Contact form 7の確認画面を自作している人もチラホラいる

Contact form 7の確認画面の需要というのは日本特有のものなのか、無料で使える目ぼしいプラグインは多くありません。

Contact form 7 add confirmが使えなくなってから日本製のプラグイン『confirm plus contact form 7』がリリースされましたが、Contact Form 7 Multi-Step Formsでいいんじゃね?という流れから、有効インストール数は5000程度です。

プラグインのサポートフォーラムを見ても回答されずに放置されている感じもあり、使うことに不安を覚える人も多いでしょう。

Confirm Plus Contact Form 7
Add a confirmation screen to "Contact Form 7".

Contact Form 7 Multi-Step Formsに乗り換えの記事を見かけますが、ビジネスで使うのはリスクがあるという意見も多いです。

Contact form 7 add confirmの代わりにContact Form 7 Multi-Step Formsを使ってみたけど、今回触れたような挙動があるのでビジネスレベルでは使えない、自作した方がマシという人の記事をいくつか見かけます。

Contact form 7 確認画面 自作】とかのキーワードで見つかります。

確認画面が必要だけどまともに使えるプラグインが無いから自作した、というムーブですね。

Contact form 7 add confirm更新停止
⇒Contact Form 7 Multi-Step Formsに乗り換え
⇒なんか不具合あるので使うのやめる
⇒自作確認画面を導入

自作している人の記事を見ると、javascript(jQuery)とCSSだけで実装しているので簡単に確認画面を表示できることがわかります。

しかし、コードはフォーム依存になっており、確認画面のHTMLを用意する必要があって、汎用的には使えないものです。

そう考えるとフォームの内容に依存しないプラグインというのはありがたいものだと改めて思うのですが、自作しても動作確認は自分でする必要があり、結局は自己責任です。

だったらjQueryのContact form 7 add confirmの修正版でいいのではないかと思った次第です。

Contact form 7 add confirmもソースコードを見るとわかりますが、ほとんどがjavascriptですので、自作している確認画面とやっていることはそれほど違いはありません。

まとめ

保守の部分を無料で他人に丸投げしたいのはわかりますが、Contact form 7 add confirmの問題を避けるために安易にContact Form 7 Multi-Step Formsへの乗り換えを奨めている記事が多いです。

実は不具合多いのでビジネスサイトでは避けた方がよいです。

Contact form 7本体が対応してないし、今後も対応はしないと思うので、Contact form 7に確認画面を導入するにはプラグインでも自作でもjavascriptで実装することになります。

Contact form 7の仕様が変更になった時にはjavascriptを修正して追従していくのは同じです。

だれが責任もってやるかの違いだけです。

それが嫌なら、確認画面が使える無料のフォームであるSnow Monkey Formを使うのが良さそうです。

プラグインを複数組み合わせるから問題が起きるので、確認画面つきのフォームを使えば、互換性の問題は出ません。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

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