<?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>
解决了。。。这样,你在captcha文件里,把meta那一行改成<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
然后,打开form文件,你是用的notepad++编辑器的话可以点击格式—>编码字符集——>中文——>GB2313,会有个对话框,点击确定。
这时候你会发现你之前输入的狗啦什么的汉字全变成乱码了,只能重新再打一遍了。
改完之后,保存,完美解决
还是编码格式问题,在浏览器中把编码格式改成UTF-8可以显示输入正确,但显示的是乱码,具体怎么解决不清楚。。。
我也遇到这种情况了,就是输入什么都错误
img标签src的引号范围有问题
你的验证码能显示出来?