php验证码读取问题

peace_d641 2010-05-18 06:18:42
做了一个验证码的程序,用number.php来生成验证码,代码如下:
session_start();
function randomkeys($length)
{
$pattern = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
for($i=0; $i<$length; $i++)
{
$key .= $pattern{mt_rand(0,61)};
}
return $key;
}


//$str = randomkeys(6);//输入的文字
$_SESSION['v']=randomkeys(6);
header("Content-type: image/jpeg");
$im = imagecreate(100, 30) or die("Cannot Initialize new GD image stream");//图片大小

//$str=iconv("gb2312","UTF-8",$str);
$_SESSION['v']=iconv("gb2312","UTF-8",$_SESSION['v']);
for($i=0;$i<200;$i++) //加入干扰象素
{
$clr = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%100 , rand()%50 , $clr);
}

$black = imagecolorallocate($im, 0, 0, 0);
$fnt = "ARIAL.TTF"; //字体文件
ImageTTFText($im, 15, 0, 10, 20, $black, $fnt, $_SESSION['v']);
imagejpeg($im);
imagedestroy($im);



然后用refresh.php实现刷新,refresh.php代码如下:
<script language="JavaScript">
<!--
function change(id){
document.getElementById(id).src ='number.php?'+Math.random(1);
}
//-->
</script>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="number.php" width="100" height="30" id="vnum"/></td>
<td> <a href="#" onclick="change('vnum')">Change</a></td>
</tr>
</table>


在用到验证码的页面里我用include refresh.php把refresh页面包含在内,但是想要进行验证时却总是失败。

我的想法是在生成验证码图片的时候把验证码的值存进session里,然后refresh页面每次刷新验证码时session的值也会变,用的时候只要对比检查用户提交的值和session的值就可以了。但是session的值好像不会变,不知道该用什么方法来进行正确的验证,希望高人解答。
...全文
109 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyzy_yy_pm 2010-05-18
  • 打赏
  • 举报
回复
function change(id){
document.getElementById(id).src ='number.php?x='+Math.random(1);
}
试一试

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧