补充下:
比如第一次到该页面当前图片上的字符串为:“TX89”,echo $_SESSION["code"]为“”刷新页面一次,生成的验证码为“zNy5”,echo $_SESSION["code"]为:"TX89"

解决方案 »

  1.   

    正常!~把
    echo $_SESSION["code"]
    放到
    imagedestroy($im);
    $_SESSION["code"] = $str; 
    后面试下
      

  2.   

    我把代码改了一下,//文件名:pic.php
    session_start(); 
    function random($len) 

    $srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
    mt_srand(); 
    $strs=""; 
    for($i=0;$i <$len;$i++){ 
    $strs.=$srcstr[mt_rand(0,35)]; 

    return strtoupper($strs); 

    $str=random(4); //随机生成的字符串 
    $width = 300; //验证码图片的宽度 
    $height = 25; //验证码图片的高度 
    //设置页面输出的格式为image/png格式
    @header("Content-Type:image/png"); 
    $_SESSION["code"] = $str; 
    //echo $str; 
    $im=imagecreate($width,$height); 
    //背景色 
    $back=imagecolorallocate($im,0xFF,0xFF,0xFF); 
    //模糊点颜色 
    $pix=imagecolorallocate($im,187,230,247); 
    //字体色 
    $font=imagecolorallocate($im,41,163,238); 
    //绘模糊作用的点 
    mt_srand(); 
    for($i=0;$i <1000;$i++) 

    imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix); 
    }
    $_SESSION['id']=microtime();
    imagestring($im, 5, 7, 5,$str.' '.$_SESSION['id'], $font); 
    imagerectangle($im,0,0,$width-1,$height-1,$font); 
    imagepng($im); 
    imagedestroy($im); 
    echo $_SESSION['id'];
    $_SESSION["code"] = $str;//文件名:get.php
    session_start(); 
    //include 'pic.php';
    //echo "this is a test";
    $_SESSION['id']=microtime();echo "<img src='pic.php' border=0 align='absbottom'>";//生成图片\
    echo '<br />';
    echo $_SESSION['id'];
    多刷新几次,你就可以看到,后一个文件get.php的时间总是在pic.php文件的时间前面;我不做结论,希望有人能够回答一下为什么
      

  3.   

    get.php代码上面贴错了,应该是session_start(); 
    //include 'pic.php';
    //echo "this is a test";
    echo "<img src='pic.php' border=0 align='absbottom'>";//生成图片\
    $_SESSION['id']=microtime();
    echo '<br />';
    echo $_SESSION['id'];
    echo $_SESSION["code"];//输出生成验证码的值 
    结论是一样的
      

  4.   

    这里面应该是先执行后b.php然后才执行a.php你的代码可以这样session_start();
    $=$_SESSION[''];
    $str=$_GET['code'];
    $width = 50; //验证码图片的宽度 
    $height = 25; //验证码图片的高度 
    //设置页面输出的格式为image/png格式
    @header("Content-Type:image/png"); //echo $str; 
    $im=imagecreate($width,$height); 
    //背景色 
    $back=imagecolorallocate($im,0xFF,0xFF,0xFF); 
    //模糊点颜色 
    $pix=imagecolorallocate($im,187,230,247); 
    //字体色 
    $font=imagecolorallocate($im,41,163,238); 
    //绘模糊作用的点 
    mt_srand(); 
    for($i=0;$i <1000;$i++) 

    imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix); 
    }
    $_SESSION['id']=microtime();
    imagestring($im, 5, 7, 5,$str, $font); 
    imagerectangle($im,0,0,$width-1,$height-1,$font); 
    imagepng($im); 
    imagedestroy($im);session_start();
    function random($len) 

    $srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
    mt_srand(); 
    $strs=""; 
    for($i=0;$i <$len;$i++){ 
    $strs.=$srcstr[mt_rand(0,35)]; 

    $_SESSION["code"] = $strs; 
    return strtoupper($strs); 
    }
    $str=random(4); //随机生成的字符串 
    echo "<img src='pic.php?code=$str' border=0 align='absbottom'>";//生成图片\
    echo $_SESSION["code"];
      

  5.   

    echo "<img src='pic.php' border=0 align='absbottom'>";引用的a.php页面。先执行的b.php页面,先输出SESSION的值,当然是上一个页面的session的值,这个echo不会影响你的工作。b.php表单提交后,session的值就会替换的