ホームページ >php教程 >php手册 >PHP の例: PHP を使用してフォーム検証コードのログイン検証を実装する

PHP の例: PHP を使用してフォーム検証コードのログイン検証を実装する

WBOY
WBOYオリジナル
2016-06-21 09:01:201182ブラウズ

原理:画像を生成し、画像に表示されている文字をSESSIONに保存します。 ログイン時に、入力されたチェックコードがSESSION内のチェックコードと同じかどうかを判定します。チェックコードサム 画像ファイル checkNumber.php

session_start();

if($act == "init")
{
Header("Content- type: image/png");
srand(microtime() * 100000);
$login_check_number = strval(rand("1111","9999"));
session_register("login_check_number");
// ここでは SESSION を使用してチェックコードを保存します。
// もちろん COOKIE も使用できますsession_start() が削除されました
// COOKIE は安全な検証ができないため推奨されません。
$h_img = imagecreate(40,17);
$c_black = ImageColorAllocate($h_img, 0,0,0);
$c_white = ImageColorAllocate($h_img, 255,255,255); $h_img, 1, 1, 350, 25, $c_black);
imagearc($h_img, 200, 15, 20, 20, 35, 190,
imagestring($h_img, 5, 2, 1, $login_check_number, $c_white);
ImagePng($h_img);
die(); 使用法:
HTML ファイルにを追加します。次のコードをログイン検証 PHP ページに追加します (注: SESSION が使用されているため、コードを追加する前に出力されます)
//$number は入力した確認コードです。 Value
include_once("./checkNumber.php")
//チェック コード
if ($number != $login_check_number || empty($number))
{
print("チェックコードが間違っています!")
die();
*/
?>

SESSION 使用時の問題:

SESSION の有効期限が切れた後にログイン ページを開いてログインすると、ログインが失敗します。

using COOKIE:

COOKIE はクライアントに保存されるため、COOKIE を使用するほどではありません。

VBB フォーラムの場合は、checkNumber.php を保存した後、タイトルを変更します。 MYSQL データベース テンプレート データ テーブルを、logincode forumhome_logincode username_loggedout テンプレート コンテンツに追加します。

次に、member.php の

if ($action=="login")

に続いて

//チェックコードをチェックします

include_once( "./ checknumber.php");

if($ number!= $ login_check_number || $ number == "")

>

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