検索
ホームページバックエンド開発PHPチュートリアルPHPでカスタムキャプチャと連絡フォームを作成します

10年前に最初に公開されたこのチュートリアルは、ランダムなCaptchasを生成するための最新のコードで完全に更新されました。ディスカッションスレッドの多くのコメントは、時代遅れのコードを参照しています。

プロセスの自動化は、コンピューターの速度と精度を活用して、コーディングの重要な利点です。ただし、このパワーは、スパムやパスワードのクラッキングなどの悪意のあるアクティビティで誤用される可能性があります。このチュートリアルは、スパムアンチスパム技術に焦点を当てています。

連絡先フォームのあるWebサイトを検討してください。正当なユーザーにとって便利ですが、自動化されたスパムの提出に対して脆弱です。ボットは、フォーム、フォーラム、またはスパムリンクを使用したコメントセクションを洪水にすることができます。

解決策?ボットを人間と区別するテスト:PHPフォームと統合されたキャプチャ。伝統的なキャプチャは、画像内に歪んだテキストを提示します。人間はそれを読むことができますが、ボットは通常できません。これにより、元のCaptchaテキストに対するユーザー入力が検証されます。 Captchaは、「完全に自動化されたパブリックチューリングテストで、コンピューターと人間を引き離す」ことを表しています。

このチュートリアルでは、Captchaを連絡先フォームに作成および統合することを示しています。

キャプチャを作成します

PHP GDライブラリを使用します。以前のチュートリアルでは、GDのテキストと形状の描画機能について説明します。また、Captcha用のランダムな文字列も生成します。

ランダムな文字列を生成します

このコードはcaptcha.phpにあります。 generate_string()関数は、ランダム文字列を作成します。元のgenerate_string()関数は、より安全なrandom_int()に置き換えられています。

 

Captchaの背景を作成します

次に、5つのさまざまな色を使用して、Captcha画像の背景(200x50ピクセル)を生成します。

 

ランダム$red$green$blue値がベースの色を決定します。ループは、 $colorsアレイに保存された暗い色合いを作成します。最も明るい色が背景を満たし、その後の長方形が複雑さを加えます。

キャプチャの背景画像の例

Captcha文字列をレンダリングします

最後に、ランダムな文字列を背景に描画します。文字の色、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/?x-oss-process=image/resize,p_40" 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();
};

CAPTCHAとの連絡先フォームの例

最後に、連絡先フォーム処理スクリプト( contact.php )を更新して、captchaを検証します。

 あなたは間違ったキャプチャに入りました。 ';
    }
} それ以外 {
    エコー '<p>何かがうまくいかなかった</p>';
}

?>

これにより、ユーザーの入力がセッションで保存されたCaptchaテキストと一致するかどうかを確認します。

結論

このチュートリアルは、カスタムPHP Captchaを作成し、連絡先フォームに統合し、更新ボタンでセキュリティとユーザーエクスペリエンスを向上させました。これは、数学の問題など、さまざまなCaptchaメソッドを使用するように適応できます。より高度な機能については、Codecanyonのプラグインを使用することを検討してください。

以上がPHPでカスタムキャプチャと連絡フォームを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター