图片验证码本地测试没有问题,发到服务器上.明明是对的,就是显示验证码错误!找不到理由...代码如下;
生成图片的PHP页
<?php 
session_start();
for($k=0;$k<8;$k++){
$rand.=dechex(rand(1,15));
}
$_SESSION[check_img]=$rand;
$img=imagecreatetruecolor(100,20);
$bgcolor=imagecolorallocate($img,0,0,0);
$ziti=imagecolorallocate($img,255,255,255);
imagestring($img,6,rand(1,30),rand(1,5),$rand,$ziti);
header("Content-type:image/jpeg");
imagejpeg($img);
?>
----------
验证页面代码
<?php
session_start();
$yanzhengma=$_POST[yanzheng];//表单提交过来的
if($yanzhengma!=$_SESSION[check_img]){
echo "验证码有误";
exit();
}?>

解决方案 »

  1.   

    我以前也遇到过类似问题,最后解决办法是服务器不支持jpg图片格式验证码(设置问题),改成了png就可以相等了。
    仅供参考
      

  2.   

    你开启error_reporting试试,然后用ajax获取验证页面中$_SESSION[check_img]的值,对比图片,就知道了
      

  3.   

    检查服务器端的 session.auto_start 的值
      

  4.   

    证实了应该是session无效!这是为什么呢? 我该怎么修改代码?
      

  5.   

    显示Cookie中的图片验证码,不是服务器的。图片验证码要刷新。