0

基本的に、CSS で設定されているフォームに入力フィールドがあり、display: none自動入力プログラムが非表示フィールドに入力するかどうか疑問に思っていましたか? ロード時にフィールドの値を time() に設定し、それをフォームが送信された時間と比較して、ユーザーが人間かボットかを判断します。

非表示フィールドのコードは次のとおりです。

<?php

    $loadTime = time(); // Initial time that the page loads is checked against the time the form is submitted and if its too fast, its probably a bot

?>

<input type="text" name="loadTime" id="loadTime" value="<?php echo $loadTime ?>" maxlenght="50" />
4

3 に答える 3

1

テキスト入力の代わりに をdisplay:none;使用する必要があります<input type="hidden" .../>。この自動入力プログラムのように、その値は変更されません。別の (そしてより安全な) オプションは、変更できないように時間値をサーバー変数として保存することです

于 2012-08-12T09:18:50.983 に答える
1

自動入力プログラムが非表示フィールドに入力するかどうか疑問に思っていましたか?

(編集: 非表示にすることで、あなたがこれを求めていると思いました:

<input type="hidden"...

)

答えはノーです。また、誰かがその値を操作できるため、その隠しフィールドを削除します。クライアントのコンピューターではなくサーバーに保存されるため、その時間データをセッションに保存したいと思います。

于 2012-08-12T09:21:09.370 に答える
0

自動入力がフォームに入力されても、CSSで設定されているため表示されません。テキストを表示したい場合は、JavaScriptが入力を変更/入力している間にクラスCSSを変更します。JavaScriptを使用して、テキストの入力とCSSの変更の両方を同時に行うことができます。

于 2012-08-12T09:26:19.617 に答える