問い合わせ内容などの文字数制限 Part3 (質問ID:1671)
カテゴリ | 自動フォーム・ツールに関する質問 | ||
---|---|---|---|
タイトル | 問い合わせ内容などの文字数制限 Part3 (質問ID:1671) | ||
質問者 | kuraraさん (696) | ||
質問日時 | 2024/05/13 14:35 | 回答数 | 6 |
メディア共有 | Tweet | ||
質問内容 | |||
以前のスレッドでのアドバイス「HTML側のmaxlength="100"」を参考にサイト更新しましたが、問い合わせ内容に500文字以上記入された迷惑メールがまだ届きます。 |
質問に回答するには、ログインしてください。
回答(6件)
- 回答者:
- q19cms担当者さん (2341)
- 回答日時:
- 2024/05/13 19:30
追加の修正が必要でした。
270行付近です。
if (!$_REQUEST["mode"]) {
$mode = "form";
} else if ($msg) {
$mode = "form";
} else if ($_REQUEST["mode"] == "reinput") {
$mode = "form";
3,4行目が追加部分です。
外部サーバーから直接送信が行われた際のエラー対応が抜けていました。
- 回答者:
- q19cms担当者さん (2341)
- 回答日時:
- 2024/05/13 17:56
お問い合わせの文字数制限の方法です。
他のご利用者のために、対応方法を公開いたします。(kuraraさんは無視してください)
ご自身の環境により、form.phpを修正してご利用ください。
目的の項目に制限する文字数を追加します。
(140行付近にあるとおもいます。item3の部分は設定により異なります。)
"item3" => array("title" => "お問い合わせ内容", "name" => "item3", "func" => "7", "require" => "1", "check" => "", "limit" => 100),
「 "limit" => 100」が制限値で、100文字までの設定です。
入力チェックに文字数チェックを追加します。
(229行付近にあります)
// 入力のチェック
if ($_REQUEST["mode"] == "form") {
if ($val["limit"] && (strlen($form[$val["name"]]) > $val["limit"])) {
$msg[$val["name"]] = $val["title"] . "の文字数が多すぎます。";
}
上2行はもとからある部分で、その下に3行追加します。
これで、100文字以上の入力はえらーとなり、「文字数が多すぎます」と表示され
メールは送信されません。
設定のサンプルとなるform.phpが必要な方は、メールを頂ければお送りします。
また、修正方法がわからないなどの場合は、form.phpをお送りいただければ、
修正してお返しいたします。
- 回答者:
- q19cms担当者さん (2341)
- 回答日時:
- 2024/05/13 17:25
ファイルありがとうございます。
対策を検討いたしますので、お待ちください。
こちらに文字数制限のテスト環境を用意しました。(文字数100文字)
https://q19cms.com/test/maxlength.html
入力欄に記入して、送信を押すと現在の文字数が表示されます。
現在発生しているスパムメールは、フォームの情報だけ取得して、
別のサーバーからデータを送信していると思われます。
この方法ですと、フォームを使わないので、文字数制限にはかかりません。
- 回答者:
- kuraraさん (696)
- 回答日時:
- 2024/05/13 17:19
お世話になります。
当方の確認不足もあり、お手数をおかけしますが利用中のform.phpをお送りしました。
ブラウザなどの利用環境にもよりますが、現在、当方のクローム環境では確かに、文字制限が機能します。
(全角文字入力モードで試したときに制限文字数を超えたように思います)
- 回答者:
- q19cms担当者さん (2341)
- 回答日時:
- 2024/05/13 16:55
補足です。
「キャプチャ」機能をご利用いただくと、スパムメールをある程度防ぐことが出来ます。
キャプチャを使用すると、フォーム外からの送信が出来なくなるためです。
- 回答者:
- q19cms担当者さん (2341)
- 回答日時:
- 2024/05/13 14:50
maxlengthでの文字数制限の場合、コピペでも設定文字数以上の入力はできません。
このため、フォームを通さずに直接送信を行っていると思われます。
プログラムでの対応を行いたいとおもいますが、フォーム生成システムは複数あります。
可能であれば、フォーム生成の結果のZIPファイルをお送りいただければ、それを優先で
対応いたします。
送り先:cms@q19cms.com
対応しましたら、ここの回答でお知らせします。