SSL対応のフォーム

2016年5月23日 at 11:16

SSL Redirect Configurationをつかってフォームブロックを設置したページを
https:でアクセスできるようにしたのですが、
フォーム送信時に
「/updates/concrete5.7.5.6/concrete/blocks/form/controller.php:352 設定されたフォームになにか問題があります(ID番号が設定されていません) (0)」
とエラーがでてしまいます。

SSLの設定をしない場合は、問題なく送信されました。
既に公開しているサイトのためElementalでは試せてません。

サーバーはCPIのシェアードプラン ACE01です。

SSL利用時にもフォーム送信できるようにどのあたりを見直せばよいでしょうか?

よろしくお願いします。

タグ:

Re: SSL対応のフォーム

2016年5月27日 at 14:32
SSL化のアドオンの設定を見直したところ解決いたしました。
フォームを設置しているページにしかSSL対応できていなかったことが原因でした。
 

Re: SSL対応のフォーム

2016年5月27日 at 14:33
アドオン作者です。このアドオンはURLの正規表現ルールでリダイレクトするかどうかを決めています。ページの指定ではありません。ここ注意です。なので、

/contact

だけSSL設定すると、送信後の

/contact/submit_form/123

というURLはSSLではないということになってしまいます。正しくは

/contact
/contact/*

のようにワイルドカード ( * ) を使って指定してください。


なぜこう言う仕様なのかというと、例えばページの属性で判断してしまうとリダイレクトするかどうかの判定にデータベースへのアクセスが必要になるからです。このアドオンでは、configファイルに記載したルールのみで判定を行うので、処理が速くなります。


ちなみに、

/*/contact

みたいに途中にワイルドカードを挟むことができます。
他にもSSL対応のアドオンはありますので、用途に合わせて使い分けてくださいね。