为什么不管我输进去什么都显示输入验证码错误

来源:1-9 PHP验证码制作之图片验证码实现

王凯1994

2015-03-04 13:49

<?php
     session_start();
     $table=array(
	    'pic0'=>'兔',
		'pic1'=>'狗',
		'pic2'=>'猫',
		'pic3'=>'熊猫',
	 );
	 $index=rand(0,3);
	 $value=$table['pic'.$index];
	 $_SESSION['authcode']=$value;

     $filename=dirname(__FILE__).'\\pic'.$index.'.jpg';
	 $contents=file_get_contents($filename);

	 header('content-type:image/jpg');
	 echo $contents;

?>
<?php
header("Content-type: text/html; charset=utf-8"); 
  if(isset($_REQUEST['authcode'])){
  session_start();
  if($_REQUEST['authcode']==$_SESSION['authcode']){
     echo '<font>验证码输入正确</font>';
  }else{
     echo '<font>验证码输入错误</font>';
  }
  exit();
  
  }

?>
<!DOCTYPE html>
<html>
 <head>
  <title> New Document </title>
  <meta charset="utf-8"/>
 </head>

 <body>
  <form method="post" action="./form.php">
  <p>验证码图片:<img id="authcode" border="1" src="./index_image.php?r=<?php echo rand();?> width=300 height=300">
  <a href="javascript:void(0)" onclick="document.getElementById('authcode').src='./index_image.php?r='+Math.random()">换一个</a>
  </p>
  <p>请输入图片中的内容:<input type="type" name="authcode" value=""/></p>
  <p><input type="submit" value="提交" style="padding:6px 20px;"></p>
  </form>
 </body>
</html>


写回答 关注

5回答

  • 李墨迹
    2015-04-13 16:26:37

    解决了。。。这样,你在captcha文件里,把meta那一行改成<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

    然后,打开form文件,你是用的notepad++编辑器的话可以点击格式—>编码字符集——>中文——>GB2313,会有个对话框,点击确定。

    这时候你会发现你之前输入的狗啦什么的汉字全变成乱码了,只能重新再打一遍了。

    改完之后,保存,完美解决

    Nemona... 回复Nemona...

    再执行一遍就好了。。。。。。点击格式—>编码字符集——>中文——>GB2313

    2015-04-24 23:33:01

    共 2 条回复 >

  • 李墨迹
    2015-04-13 16:18:59

    还是编码格式问题,在浏览器中把编码格式改成UTF-8可以显示输入正确,但显示的是乱码,具体怎么解决不清楚。。。

  • 李墨迹
    2015-04-13 16:09:13

    我也遇到这种情况了,就是输入什么都错误


  • 悟道参禅
    2015-04-13 14:50:46

    img标签src的引号范围有问题

  • CR71
    2015-03-04 14:45:46

    你的验证码能显示出来?


    王凯1994

    能显示出来

    2015-03-04 21:21:35

    共 1 条回复 >

PHP实现验证码制作

各种形态验证码核心原理与实现技巧,讲解实现过程中的技术难点

37916 学习 · 321 问题

查看课程

相似问题