在网上找了一个版本很老的php验证码代码 现在发现:
在register_globals = on的时候可以通过验证.
但是register_globals = Off的时候就无法通过验证了.上网找了一些关于register_globals = Off后SESSION 的问题,还是没找到答案.
现在好像是authpage.php文件中的$_SESSION["auth_num"] 无法取得authimg.php文件中$auth_num的值。
所以请教一下各位大虾是什么问题?要如何修改才行,万分感谢!!!
以下是源代码:
[php]<?php
/*
* Filename:authimg.php
*/
Header("Content-type:image/PNG");
session_start();
$auth_num="";
/*session_register('auth_num'); //为auth_num注册,在authpage.php验证页中用到的$auth_num==$num 中的auth_num注册.
$auth_num=substr($auth_num_k,17,5); //为auth_num附值,在$auth_num==$num时,auth_num的原始值就是这个.
*/
session_register('auth_num');
$im=imagecreate(63,20);
srand((double)microtime()*1000000);
$auth_num_k=md5(rand(0,9999));
$auth_num=substr($auth_num_k,17,5);
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
$gray=ImageColorAllocate($im,200,200,200);
//ImageFill($im,63,20,$black);//这行不知道为什么在我公司的服务器上出错误,换个空间ok
imagestring($im,5,10,3,$auth_num,$gray);
for($i=0;$i<200;$i++)
{
$randcolor=ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()%70,rand()%30,$randcolor);
}
ImagePNG($im);
ImageDestroy($im);
?>[/php]
[php]
//file:authform.php
<script language="javascript">
function check(){
if(document.forms[0].num.value==''){
alert("请输入验证码");
return false;
exit;
}
return true;
}
</script>
[/php]
[php]<?php
/*
* Filename:authpage.php
*/
session_start();
$num=trim($_POST["num"]);
if($_SESSION["auth_num"]==$num && $num<>""){
echo "验证成功";
}else{
echo "验证失败";
}
?>[/php]
[ 本帖最后由 soguu 于 2006-4-10 02:03 AM 编辑 ]