PHp 验证码登陆 检验问题·

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:01:01
//checkNumber.php

<?php
session_start();
session_register("login_check_number");
$img_height=60;
$img_width=20;
if($HTTP_GET_VARS["act"]== "init"){
for($Tmpa=0;$Tmpa<4;$Tmpa++){
$nmsg.=dechex(rand(0,15));
}
$HTTP_SESSION_VARS[login_check_number] = $nmsg;
$aimg = imageCreate($img_height,$img_width);
ImageColorAllocate($aimg, 255,255,255);
$black = ImageColorAllocate($aimg, 0,0,0);
ImageRectangle($aimg,0,0,$img_height-1,$img_width-1,$black);
for ($i=1; $i<=200; $i++) {
imageString($aimg,1,mt_rand(1,$img_height*0.9),mt_rand(1,$img_width*0.6),"4",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
}
for ($i=0;$i<strlen($HTTP_SESSION_VARS[login_check_number]);$i++){
imageString($aimg, mt_rand(3,7),$i*$img_height/5+mt_rand(1,10),mt_rand(1,$img_wid

这个问题很简单,为什么输入正确确显示不正确

注意看:
<img src="checkNumber.php?act=init" onclick="this.src='checkNumber.php?act=init '" style="cursor:pointer;" alt="点击刷新验证码" align="absmiddle" />

在checkNumber.php页面里是将验证码重新更新了$session

---------------------------------
好,当我们进入页面时候,验证码更新然后显示在图片里

填完了验证码提交后,重新进入本页,首先生成了新的验证码($_SESSION),导致你输入的和已经改变的验证码不相同~就是这个原因.