ホームページ バックエンド開発 PHPチュートリアル 検証コード機能を実装したPHPサンプル

検証コード機能を実装したPHPサンプル

Jun 23, 2016 pm 01:49 PM
php 関数 検証コード

認証コードがウェブサイトの登録、ログイン、その他多くのことに必要な機能であることは誰もが知っています。確認コードがないと、Web サイトのセキュリティが大幅に脅かされます。したがって、認証コードはウェブサイトの開発プロセスにおいて不可欠な機能であり、認証コードの効果はウェブサイトのセキュリティに直接影響します。 (ここのブロガーも認証コード機能について苦情を言っていました。本当に面倒です。毎回認証コードを入力しなければなりません。本当に面倒です。少し前に、12306 も動的認証コードを発行しました。そこで言いたいのですが)寮には誰も正しく入力できません。このクソ機能を廃止する代替機能がすぐにリリースされることを願っています。一日中認証コードに直面するのを好むユーザーは多くないと思います。さて、これ以上ナンセンスはありません。

最初にマインド マップを使用して全体的なアイデアを明確にします:

auth.php の GD ライブラリを使用して描画し、検証コードの背景を配置し、背景にランダムに生成された文字列を追加し、文字を追加します。同時に、文字列はセッションに保存され、どのページでも検証コードを抽出できるようになります。 form.html に簡単なログイン フォームを記述し、検証コード機能を実装したPHPサンプル タグを使用して auth.php に検証コードを読み込みます。次に、データを submit.php ページに送信します。 submit.php では、まず検証コードの検証 (ユーザー名とパスワードについてはここでは説明しません) を実行し、その前にセッションに格納されている文字列が form.html で送信された検証コードの文字列と同じであるかどうかを確認します。大文字と小文字を区別しないようにするには、文字列を常に小文字に変換します。文字列が同じ場合はページがジャンプします。異なる場合は、ログイン ページに戻ります。

1.auth.php

rrree

(1) ヘッダーの前に出力はありません

(2) セッションを使用する前にセッションを開く必要があります

2.form.html

<?phpheader("content-type:text/html;charset=utf-8");//开启sessionsession_start();//准备画布$im=imagecreatetruecolor(50,25);//准备涂料$black=imagecolorallocate($im,0,0,0);$gray=imagecolorallocate($im,200,200,200);//背景填充imagefill($im,0,0,$gray);//文字居中$x=(50-10*4)/2;$y=(25-5)/2+5;//准备文字$arr=array_merge(range(0,9),range('a','z'),range('A','Z'));shuffle($arr);$str=implode(array_slice($arr,0,4));//把$str放入session中,方便所有页面中调用$_SESSION['vstr']=$str;$file="fonts/simsun.ttc";imagettftext($im,10,0,$x,$y,$black,$file,$str);//输出到浏览器上或保存起来header("content-type:image/png");imagepng($im);//关闭画布imagedestory($im);?>
ログイン後にコピー
(1) メソッドの送信メソッドは post

(2) テキストボックスと認証コードの連携を図る

3.submit.php

<html> <head>	<meta charset="utf-8">	<title>登录</title>	<style>		table{						border-collapse:collapse;		}		img{			margin-top:5px;		}	</style> </head> <body>	<h2>用户登录页面</h2>	<hr>	<table width="500px" border="1px">		<form action="submit.php" method="post">			<tr>			<td>姓    名:</td>			<td><input type="text" name="username" id=""></td>			</tr>			<tr>			<td>密    码:</td>			<td><input type="password" name="password" id=""></td>			</tr>			<tr>			<td>验证码:</td>			<td><input type="text" name="vcode"> 			<img src="auth.php"></td>			</tr>			<tr>			<td><input type="submit" value="提交"></td>			<td><input type="reset" value="重置"></td>			</tr>		</form>	</table> </body></html>
ログイン後にコピー
(1) strto lower() を使用するすべての文字列を小文字に変換すると、検証コードの大文字と小文字を区別する面倒なプロセスが不要になります。

(2) if ステートメントを使用して、2 つの文字列が true に等しいかどうかを判断します。

(3) 直接ジャンプするために、ジャンプする必要があるアドレスを <script>location=''</script> の中に追加します。もちろん、header() を使用することもできますが、header() の前に出力を置くことはできず、制限が多すぎます。 jsを使った方が良いです。






このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

See all articles