CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

php 写的验证码 ,帮忙看看有什么毛病?

楼主WXPQD(Sean)2003-07-02 13:53:46 在 Web 开发 / PHP 提问

问什么下面的文件不能显示出验证码来,大虾救命  
   
  这是     ii.php   文件  
  <?  
  session_start();  
  ?>  
  <FORM   METHOD=POST   ACTION="ii.php">  
  <input   type=text   name=number   maxlength=4><img   src="Yan.php?act=init">  
  <INPUT   TYPE="submit"   name="sub">  
  </FORM>  
   
  <?  
  if(isset($HTTP_POST_VARS["sub"])){  
  if($HTTP_POST_VARS["number"]!=$HTTP_SESSION_VARS[login_check_number]||empty($HTTP_POST_VARS["number"])){  
          echo   "验证码错误"   ;  
  }else{  
          echo"验证码正确";  
  };  
  };  
  ?>  
   
   
  下面是     yan.php     文件  
  <?  
  session_start();  
  session_register("login_check_number");  
  $height=120;  
  $width=40;  
  if($HTTP_GET_VARS["act"]=="init"){  
          for($i=0;$i<4;$i++){  
                  $temp.=dechex(mt_rand(0,15));  
          }  
          $HTTP_SESSION_VARS["login_check_number"]=$temp;  
          $aimg=imagecreate($height,$width);  
          imagecolorallocate($aimg,180,180,180);  
          $black=imagecolorallocate($aimg,100,100,100);  
          imagerectangle($aimg,0,0,$height-1,$width-1,$black);  
          for($i=0;$i<100;$i++){  
          imagestring($aimg,2,mt_rand(0,$height-1),mt_rand(0,$width-1),"*",imagecolorallocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));  
          };  
          for($i=0;$i<strlen($HTTP_SESSION_VARS["login_check_number"]);$i++){  
          imagestring($aimg,mt_rand(3,5),mt_rand($i*$height/4,($i+1)*$height/4),mt_rand($1,$width/2),$HTTP_SESSION_VARS["login_check_number"],imagecolorallocate($aimg,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));  
   
          };  
          header("content-type:image/png");  
          imagepng($aimg);  
          imagedestroy($aimg);  
   
  }  
   
  ?> 问题点数:20、回复次数:6Top

1 楼anziqi(美洲狮)回复于 2003-07-02 14:09:25 得分 5

你在ii中看看你的 session变量$HTTP_SESSION_VARS[login_check_number]  
  有没有值 。用这个看看也成。$_SESSION["login_check_number"]Top

2 楼xuzuning(唠叨)回复于 2003-07-02 14:17:41 得分 5

在你的   ii.php   文件   中没有调用验证码码生成的程序,接下来的都是没有意义的事情  
  Top

3 楼netvt(唯她(为了泡老婆,努力学习LISP))回复于 2003-07-02 14:33:27 得分 5

<?  
  /*     ii.php   */  
  session_start();  
  ?>  
  <FORM   METHOD=POST   ACTION="ii.php">  
  <input   type=text   name=number   maxlength=4><img   src="yan.php">  
  <INPUT   TYPE="submit"   name="sub">  
  </FORM>  
   
  <?  
  if(isset($HTTP_POST_VARS["sub"])){  
  if($HTTP_POST_VARS["number"]!=$HTTP_SESSION_VARS["auth"]||empty($HTTP_POST_VARS["number"])){  
          echo   "验证码错误"   ;  
  }else{  
          echo"验证码正确";  
  };  
  };  
  ?>  
   
  yan.php  
  <?php    
  session_start();  
  srand((double)microtime()*1000000);    
   
  while(($authnum=rand()%10000)<1000);//生成四位随机整数验证码    
  $_SESSION['auth']=$authnum;  
   
  //生成验证码图片    
  Header("Content-type:   image/PNG");  
  $im   =   imagecreate(50,20);    
  $black   =   ImageColorAllocate($im,   200,10,0);    
  $white   =   ImageColorAllocate($im,   255,255,255);    
  $gray   =   ImageColorAllocate($im,   230,230,230);    
  imagefill($im,68,30,$gray);    
   
  //将四位整数验证码绘入图片    
  //位置交错  
  for   ($i   =   0;   $i   <   strlen($authnum);   $i++)   {  
  if   ($i%2   ==   0)   $top   =   1;  
  else   $top   =   5;  
  imagestring($im,   5,   10*$i+6,   $top,   substr($authnum,$i,1),   $black);    
  }  
   
  for($i=0;$i<150;$i++)       //加入干扰象素    
  {    
  imagesetpixel($im,   rand()%70   ,   rand()%30   ,   $black);    
  }    
   
  ImagePNG($im);    
  ImageDestroy($im);  
   
  ?>  
  Top

4 楼WXPQD(Sean)回复于 2003-07-02 14:33:42 得分 0

帮我改进一下Top

5 楼enhydra(明)回复于 2003-07-02 16:25:17 得分 5

If   you   are   using   $_SESSION   (or   $HTTP_SESSION_VARS),   do   not   use   session_register(),   session_is_registered(),   and   session_unregister().    
   
  如果使用$_SESSION   (or   $HTTP_SESSION_VARS),   是不用注册session变量的,你已经注册了session变量,就应该直接用变量名来表示session变量,那$_SESSION   (or   $HTTP_SESSION_VARS)里的元素没有值就很正常了。Top

6 楼WXPQD(Sean)回复于 2003-07-03 14:22:15 得分 0

已经正常了。使我把1写成了$1了。Top

相关问题

  • 用PHP怎么做验证码啊??要图片的那种验证码??
  • 密码验证
  • 验证码
  • 密码验证
  • 密码验证
  • 验证码问题
  • IIS 调试PHP要求验证密码,ASP不用!!怎么设置,在线等
  • 请教PHP怎么样实现前台验证码阿?如果.Net Jsp那样?
  • 求个验证码代码
  • 请教PHP中身份验证问题

关键词

  • 验证
  • 文件
  • php
  • 变量
  • 看看
  • session
  • ii
  • vars

得分解答快速导航

  • 帖主:WXPQD
  • anziqi
  • xuzuning
  • netvt
  • enhydra

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo