-4

というわけで、基本的にパスワード忘れページのあるサイトを作っています。キャプチャシステムを追加したい。今、私は 5 分ほどで作成できないものは何も望んでいません。短くシンプルにしてください。フォームの検証が必要です。私が欲しいのは、生成されて画像なしで表示される乱数です。それで、どうすればいいですか?以前キャプチャシステムを作ってみたのですが、フォームに入力するたびに乱数が変わってしまいます。

4

3 に答える 3

2

ユーザーに簡単な足し算問題をさせることができます。これにより、ほとんどの自動送信が妨げられます。

その基本は次のようになります。

$a = rand(1,10);
$b = rand(1,10);
$c = $a + $b; //throw this into a session var and check submission against it
echo "<p>$a + $b = <input type='text'/></p>";
于 2013-02-11T01:47:03.210 に答える
1

超簡単な答え:

  1. フォームページの読み込み時にセッションを作成する ( session_start())
  2. 乱数を生成し、セッション変数に保存します。$_SESSION['captcha']=[random_number]
  3. セッション文字列に基づいてイメージを作成します (GDまたは同様のライブラリが必要です)。の値に基づいて画像を作成し、その上にテキスト文字列を印刷するだけです$_SESSION['captcha']。もっと派手にしたい場合は、フォントや色を変えたり、文字を回転させたりしてみてください。セッション変数はサーバー上の一時ファイル (または DB) に保存されるため、セッションを含むすべてのファイルで使用できることに注意してください)。
  4. ユーザーが入力するためのキャプチャ フィールドを用意する<input type='text' name='captcha_field' />
  5. 送信時に、 を比較し$_POST['captcha_field'] to $_SESSION['captcha']ます。それらが同じである場合は続行し、そうでない場合は、キャプチャ フィールドに再入力するように強制します。
于 2013-02-11T01:47:15.083 に答える
0

乱数をセッション変数に保存できます。つまり$_SESSION['captcha_code']、この値と照合して確認できます。この値はユーザー固有であり、複数のリクエストで変更されません。詳細については、セッション処理を参照してください。

于 2013-02-11T01:48:26.713 に答える