如何解决php验证乱码问题

作者:神秘网友 发布时间:2020-11-03 13:00:40

如何解决php验证乱码问题

php验证乱码的解决办法:首先打开文件代码;然后使用函数“mb_convert_encoding($code,"utf-8","gbk");”对中文进行转换编码即可。

如何解决php验证乱码问题

推荐:《PHP视频教程》

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验证乱码问题的教程已介绍完毕,更多请关注跳墙网其他文章教程!

如何解决php验证乱码问题相关教程

  1. php怎么去除空的数组元素

    php去除空的数组元素的方法:可以利用array_filter函数来删除数组中的空元素,如【array_filter($array)】。array_filter函数通过用回调函数来过滤数组中的元素。 函数介绍: array_filter() 函数用回调函数过滤数组中的元素。 该函数把输入数组中的每个键值

  2. php实现网址跳转的方法有哪些

    php实现网址跳转的方法有:1、利用header函数实现跳转,如【header(location:index.php);】;2、利用HTML头部的meta标签实现跳转;3、利用javascript实现跳转。 方法如下: 第一种:利用header()函数进行重定向。 (推荐教程:php视频教程) 注意:locationh

  3. php与python有什么区别

    区别:1、Python的框架数量较少,而PHP中成熟的框架比较多;2、PHP是面向web的语言,而Python是多用途语言,也可以用于web开发;3、Python使用非常严格的缩进强制执行,使它比PHP更具可读性。 推荐:《PHP视频教程》 PHP是一种通用开源脚本语言,语法混合了C

  4. php调用js的方法是什么

    推荐:《PHP视频教程》 PHP调用JS 取值: 显示:values; htmlbodyscript type=text/javascriptvar str = values;/script?php echo script type=text/javascriptdocument.write(str)/script;?/body/html 调用函数(方法) 弹窗:9 htmlbodyscript type=text/j

  5. php怎么去除字符串两边的空格

    php去除字符串两边的空格的方法:1、直接使用trim()函数去除一个字符串两端空格;2、使用rtrim()和ltrim()分别去除一个字符串右边和左边空格;3、使用mb_ereg_replace()函数配合正则表达式来替换、去除空格。 推荐:《PHP视频教程》 php去除字符串两边的空格

  6. 如何检查linux是否安装php

    linux是否安装php的查看方法:1、在终端通过“php -v”命令查看当前php的版本;2、在终端中执行命令“rpm -qa | grep php”;3、使用pear命令的list参数查看安装的php支持。 推荐:《PHP视频教程》 方法一、在终端通过php -v命令来查看一下当前php的版本。如

  7. php怎么删除cookie

    php删除cookie的方法:只需要将过期日期更改为过去的时间点即可,如【setcookie(user, , time()-3600);】。 删除cookie的方法: 当需要删除 cookie 时,您应当使过期日期变更为过去的时间点。 (视频教程推荐:php视频教程) 删除的实例: ?php// 设置 cooki

  8. php字符串转数组的方法

    php字符串转数组的方法:首先定义一个字符串;然后通过explode函数将字符串转成数组;最后将打散的字符串打印出来即可。 推荐:《PHP视频教程》 代码如下: explode() 函数把字符串打散为数组。 注释:separator 参数不能是空字符串。 注释:该函数是二进制