ホームページ >バックエンド開発 >PHPチュートリアル >ページに入ったときにPHPの認証コードを自動的に更新する方法

ページに入ったときにPHPの認証コードを自動的に更新する方法

WBOY
WBOYオリジナル
2016-06-23 13:55:371306ブラウズ

ページがログイン ページに直接入った場合、$_SESSION["auth"] 値は確認コードを 1 回更新することによってのみ取得できます。ユーザーがアクセスしたときに確認コードを自動的に更新するにはどうすればよいですか?アドバイスをください。 。 。

すごいです


ディスカッション (解決策) に返信します

$_SESSION["auth"] 値はどこで取得しますか?

 <div class="item fore3">                    <span>验证码</span>                    <div class="item-ifo">                        <input type="text" maxlength="4" class="text" name="randcode" id="randcode" tabindex="3"  />                        <img onclick="get_randfunc(this);" src='<{$config.weburl}>/includes/rand_func.php'/>                        <{if $smarty.get.erry=="-3"}>                            <font color="red"><{$lang.codeerr}></font>                        <{/if}>                    </div>                </div> 

login.php ページに直接アクセスすると $_SESSION["auth"] が空になります。 ホームページからアクセスしてログイン ページに行くと $_SESSION["auth"] が表示されます。検証コードの値

$_SESSION[" auth"] は rand_func.php によって生成されます
直接入力すると、送信されないため検証コードは表示されません

更新後に検証コードが送信されるのはなぜですかそれは一度ですか?ログイン インターフェイスにログインして送信するにはどうすればよいですか?

Buzhuが言ったように、ユーザーがページをダウンロードした後に確認コードの画像をリクエストすると、セッション設定が発生します。 もちろん、PHPをリクエストするときに初めて確認コードを見ることはできません〜
そして、あなたの質問に対する私の理解は少しです。曖昧です... ログイン ページに初めてアクセスしたときにセッションを取得したいですか、それとも初めて確認コードを送信したときにセッションを取得したいですか?
また、jsを使って認証コードの画像を変更する機能も含めて、キャッシュを防ぐために認証コードのURLに乱数を付加するのがベストです

おそらく画像のキャッシュの問題です。
af205bbe1b1ef6e3279c60e2443533ee/includes/rand_func.php ?{time()}'/>

これを変更します。

ログイン ページにアクセスすると、$_SESSION["auth"] の値が空になります

以下は確認コードです

if(!empty($_GET["action"]))	$post=$_GET;else	$post=$_POST;if(!empty($_GET['forward'])&&strpos($_GET['forward'],'script')>0)	header("Location:login.php");//全if(!empty($post["action"])&&$post["action"]=="submit"){	include_once("includes/global.php");	include_once("includes/smarty_config.php");	include_once("config/reg_config.php");	if(strtolower($_SESSION["auth"])!=strtolower($post["randcode"])&&empty($post['first_index'])&&empty($post['connect_id']))	{		header("Location: login.php?erry=-3");//证		exit();	} 

ログイン ページにアクセスすると、$_SESSION["auth"] の値が空になります初めて、表示を更新するまで変化しません。 。 。

$_SESSION['auth'] = $randcode;
$_GET['w']?$_GET['w']:"80"; の 75 行目と 76 行目を削除します。 ]?$_GET['h']:"33";

$width = isset($_GET['w']) に変更されました ? $_GET['w'] : " 80"; $_GET['h']) ? $_GET['h'] : "33";

まだ動作しません。 。 。 。

確認コードの画像が表示されませんか?

ValidationCode クラスは別のファイルに配置され、別のメソッド a を使用して検証コードが生成されます。

必要に応じてメソッド a を必ず削除してください。クラス。

ファイルに BOM ヘッダーが含まれているかどうかを確認します

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