0

未登録のユーザーが自分のサイトに投稿できるようにするフロントエンド フォームを実装しました。

すべてが完璧に機能していますが、私が抱えている唯一の問題は、キャプチャの実装にあります。

私が見つけたキャプチャソリューションはすべて、フォームアクションに外部ファイルを配置する必要があります。しかし、私のフォームには次の構文があります。

<form action="">

私は何をすべきかわかりません?ファイルをアクション フィールドに入力すると、投稿を追加できなくなります。キャプチャの確認コードをフォームと同じファイルに入れるにはどうすればよいですか? または、より良い解決策はありますか?

どうもありがとうございました!

4

1 に答える 1

1

PHP に精通している場合は、Zend Framework を使用してください。すべてのキャプチャに使用しています。詳細については、 http://framework.zend.com/manual/2.0/en/modules/zend.captcha.operation.htmlをご覧ください。通常、http://framework.zend.com/manual/2.0/en/modules/zend.form.quick-start.html#zend-form-quick-startと組み合わせて使用​​されるため、慣れておくとよいでしょう。両方の記事。

また、どのくらいのトラフィックが得られるかはわかりませんが、トラフィックの少ないサイトであれば、うまく機能するキャプチャの代替手段があり、テキストの翻訳の難しさによってユーザーを怖がらせることはありません. たとえば、ユーザーは 2 たす 2 のような数学の問題を解くことができます。ボットはそれを解決できません。または、ボットが入力した場合にユーザーが登録できない空白の非表示フィールドを使用することもできます。

編集:あなたの最善の策は、それらの代替手段を使用することです。それらは 99.9% のボットで機能し、特に組み合わせて使用​​しても問題はありません。のようなものを追加

<input type="hidden" value="" name="blah" /> 

そして、phpでフォームをテストします

if (strlen($_POST["blah"]) > 0)
{
     die();
}

そして、それはほとんどのボットを締め出すはずです. さらにセキュリティが必要な場合は、次のようなものを追加してください。

<p>Add two plus two</p>
<input type="text" name="check" />

そしてphp

if ($_POST["check"] != 4)
{
    die();
}

それはあなたのために働くはずです。

于 2013-02-02T14:44:18.833 に答える