ホームページ >バックエンド開発 >PHPチュートリアル >PHPでカスタムキャプチャと連絡フォームを作成します
10年前に最初に公開されたこのチュートリアルは、ランダムなCaptchasを生成するための最新のコードで完全に更新されました。ディスカッションスレッドの多くのコメントは、時代遅れのコードを参照しています。
プロセスの自動化は、コンピューターの速度と精度を活用して、コーディングの重要な利点です。ただし、このパワーは、スパムやパスワードのクラッキングなどの悪意のあるアクティビティで誤用される可能性があります。このチュートリアルは、スパムアンチスパム技術に焦点を当てています。
連絡先フォームのあるWebサイトを検討してください。正当なユーザーにとって便利ですが、自動化されたスパムの提出に対して脆弱です。ボットは、フォーム、フォーラム、またはスパムリンクを使用したコメントセクションを洪水にすることができます。
解決策?ボットを人間と区別するテスト:PHPフォームと統合されたキャプチャ。伝統的なキャプチャは、画像内に歪んだテキストを提示します。人間はそれを読むことができますが、ボットは通常できません。これにより、元のCaptchaテキストに対するユーザー入力が検証されます。 Captchaは、「完全に自動化されたパブリックチューリングテストで、コンピューターと人間を引き離す」ことを表しています。
このチュートリアルでは、Captchaを連絡先フォームに作成および統合することを示しています。
キャプチャを作成します
PHP GDライブラリを使用します。以前のチュートリアルでは、GDのテキストと形状の描画機能について説明します。また、Captcha用のランダムな文字列も生成します。
このコードはcaptcha.php
にあります。 generate_string()
関数は、ランダム文字列を作成します。元のgenerate_string()
関数は、より安全なrandom_int()
に置き換えられています。
次に、5つのさまざまな色を使用して、Captcha画像の背景(200x50ピクセル)を生成します。
ランダム$red
、 $green
、 $blue
値がベースの色を決定します。ループは、 $colors
アレイに保存された暗い色合いを作成します。最も明るい色が背景を満たし、その後の長方形が複雑さを加えます。
最後に、ランダムな文字列を背景に描画します。文字の色、Y座標、および回転は、難易度を高めるためにランダム化されます。
ダウンロードされたフォントは、文字のバリエーションを提供します。パディング(15ピクセル)が追加され、残りのスペースは文字間で均等に分割されます。
Captchaを連絡先フォームに統合します
次に、Captchaを連絡先フォームに統合しましょう(既存の連絡先フォームがあると仮定します)。セッションを使用して、Captchaテキストを保存および検証します。
完全なcaptcha.php
コード:
連絡先フォームの「メッセージの送信」ボタンの上にこのHTMLを追加します。
<div class="elem-group"> <label for="captcha">Captchaテキストを入力してください</label> <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="PHPでカスタムキャプチャと連絡フォームを作成します"> <i class="fas fa-redo refresh-captcha"></i> </div>
このJavaScriptを追加して、Captchaをリフレッシュできるようにします。
var refressbutton = document.queryselector( "。refresh-captcha"); refreshbutton.onclick = function(){ document.QuerySelector( "。CAPTCHA-IMAGE")。src = 'captcha.php?' date.now(); };
最後に、連絡先フォーム処理スクリプト( contact.php
)を更新して、captchaを検証します。
あなたは間違ったキャプチャに入りました。 '; } } それ以外 { エコー '<p>何かがうまくいかなかった</p>'; } ?>
これにより、ユーザーの入力がセッションで保存されたCaptchaテキストと一致するかどうかを確認します。
結論
このチュートリアルは、カスタムPHP Captchaを作成し、連絡先フォームに統合し、更新ボタンでセキュリティとユーザーエクスペリエンスを向上させました。これは、数学の問題など、さまざまなCaptchaメソッドを使用するように適応できます。より高度な機能については、Codecanyonのプラグインを使用することを検討してください。
以上がPHPでカスタムキャプチャと連絡フォームを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。