这篇文章主要介绍php验证乱码怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
php验证乱码的解决办法:首先打开文件代码;然后使用函数“mb_convert_encoding($code,"utf-8","gbk");”对中文进行转换编码即可。
php中文验证码,中文乱码
文件代码:
1.cn.php
<?php /********************************* * Code by Gently * 24/07/07 *严正声明:验证码为程序随机生成,“某种巧合”的词语组合属于正常现象 , *某些别有用心的人不要借题发挥! *Power by ZendStudio.Net *(http://www.zendstudio.net/) *********************************/ session_start(); header("Content-type: image/PNG"); $w=180; $h=60; $fontface="fonts/GB2312.ttf"; //字体文件linux支持直接使用windows的字体 $str = "据了解受意大利卡拉拉市文化部部长乔凡娜贝尔纳迪尼邀请云浮市美术家协会主席叶仲桥带着他的四十多幅作品前往卡拉拉市在当地的大理石博物馆举办画展其中欢乐兰寨花开时节两幅作品赠予卡拉拉市博物馆永久收藏全国书法家协会副会长陈永正欣然为画展题字叶仲桥中国画展此次画展不但获得卡拉拉市政府高度重视与支持还引起当地市民及华人华侨的热情关注卡拉拉市的新闻媒体记者专门采访了叶仲桥当地报纸以图文形式大篇幅报道了此次画展的情况"; $code=""; for($i=0;$i<4;$i++){ $Xi=mt_rand(0,strlen($str)/2); if($Xi%2) $Xi+=1; $code.=substr($str,$Xi,2); } $_SESSION["checkcode"] = mb_convert_encoding($code,"utf-8","gbk"); $im=imagecreatetruecolor($w,$h); $bkcolor=imagecolorallocate($im,250,250,250); imagefill($im,0,0,$bkcolor); /***添加干扰***/ for($i=0;$i<15;$i++){ $fontcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand (0,255),mt_rand(0,255)); imagearc($im,mt_rand(-10,$w),mt_rand(-10,$h),mt_rand (30,300),mt_rand(20,200),55,44,$fontcolor); } for($i=0;$i<255;$i++){ $fontcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand (0,255),mt_rand(0,255)); imagesetpixel($im,mt_rand(0,$w),mt_rand(0,$h),$fontcolor); } /***********内容*********/ for($i=0;$i<4;$i++){ $fontcolor=imagecolorallocate($im,mt_rand(0,120),mt_rand (0,120),mt_rand(0,120)); //这样保证随机出来的颜色较深。 $codex=iconv("GB2312","UTF-8",substr($code,$i*2,2)); imagettftext($im,mt_rand(20,24),mt_rand(- 60,60),40*$i+20,mt_rand(30,35),$fontcolor,$fontface,$codex); } imagepng($im); ?>
2、表单文件
<?php #header("Content-Type: text/html; charset=utf-8"); session_start(); if(@$_POST['checkcode']) { if($_POST["checkcode"] == $_SESSION["checkcode"]) { echo" 恭喜你!验证码输入正确!"; }else{ echo" 不好意思验证码输入错误!<br>"; echo" 你刚才输入的验证码是:<br>"; echo $_POST["checkcode"]; echo" <br>正确验证码是:<br>"; echo $_SESSION["checkcode"]; } } ?> <form action="" method="post"> <img src="cn.php"/></br> <input type="text" name="checkcode"></br> <input type="submit" value="submit"></br> </form>
第一个文件cn.php中有很关键的一行代码,网上转贴的程序都没有写入。
就是
$_SESSION["checkcode"] = mb_convert_encoding($code,"utf-8","gbk");
使用函数 mb_convert_encoding对中文进行转换,不然session传送过去的变量会是乱码。
以上是php验证乱码怎么办的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。