問い合わせ内容などの文字数制限 Part3 (質問ID:1671)

カテゴリ 自動フォーム・ツールに関する質問
タイトル 問い合わせ内容などの文字数制限 Part3 (質問ID:1671)
質問者 kuraraさん (696)
質問日時 2024/05/13 14:35 回答数 6
メディア共有 このエントリーをはてなブックマークに追加
質問内容

以前のスレッドでのアドバイス「HTML側のmaxlength="100"」を参考にサイト更新しましたが、問い合わせ内容に500文字以上記入された迷惑メールがまだ届きます。
メール送信元からして、自動フォームから送られているようで、入力チェックをすり抜けているように思います。
すり抜ける操作方法としては、問い合わせ内容などで文字制限「HTML側のmaxlength="100"」を設置した項目で、メモ帳などで下書きした長文のテキストをコピペすることで送信したようです。
自動フォーム(PHP側)で文字制限を行い、送信前の確認段階で文字制限が実行されるようにできませんか?

質問に回答するには、ログインしてください。

回答(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

対応しましたら、ここの回答でお知らせします。


6件中 1 ~ 6