<?php
//session_start();
for($k=0;$k<8;$k++){
$rand.=dechex(rand(1,15));
}
header("Content-type:image/png");
$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);
imagejpeg($img);
$_SESSION[check_img]=$rand;
?>
------------PHP验证码生成页面怎么不能加include引用页~~~ 一加图片就是个小X了! 但是我必须要加啊!!!
<?php
include_once "xx.php";//这样就错了.
for($k=0;$k<8;$k++){
$rand.=dechex(rand(1,15));
}
header("Content-type:image/png");
$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);//第2个参数也可以,rand(1,6)
imagejpeg($img);
$_SESSION[check_img]=$rand;
?>

解决方案 »

  1.   

    生成验证码图片 然后在引用的页面html img src引用图片.
      

  2.   

    没有 include 的语句是有验证码的,但是有了include图片就显示个X了
      

  3.   

    不光这样,你在这个页面弄echo都会导致图片挂掉
      

  4.   

    你为什么要去include? 你要嵌入一个图到php文件里吗?
      

  5.   

    图片验证码.不需要session吗! 我的空间是转发(不需要备案)的空间~session_start()是无效的,好象是跨域了.所以我要把session储存到数据库!这样以来,我就要在图片生成页面引用session的页面函数了! 你说我怎么弄呢!没有办法,我没有想出来啊.
      

  6.   

    再做得难点,你将公式用图片的形式输入 <img src="xxxx.jpg">+<img src="xxxx.jpg">=?
    图片的文件名自己想好没规律的而且还随机产生 当然这个你就要处理好文件名的对应关系了。
    这样那些灌水机也很难有机可趁的,是不是...输入正确了将答案加密一下传递到验证页面,验证页面再根据随机公式进行检验解密后结果是否一致.
    方法很多呀 千万别纠结...
      

  7.   

    话说没有session 的直接支持 可真是个痛苦的事情.
      

  8.   

    include_once "xx.php";//这样就错了.这个XX.PHP里面有字符输出  导致
    header("Content-type:image/png");
     
    不能执行...
    解决  清除XX.PHP里面的输出的字符...UTF-8的话  再清除BOM  就可以了...
    反正就不能有任何 ECHO  输出!