这篇文章主要介绍了php实现的简单中文验证码功能,结合实例形式分析了php中文验证码功能的实现步骤与操作方法,包括图形创建、编码操作、session操作等相关技巧,需要的朋友可以参考下
本文实例讲述了php实现的简单中文验证码功能。分享给大家供大家参考,具体如下:
img.php
<?php
session_start();
/*for($i=0;$i<4;$i++) {
$rand .= dechex(rand(1,15));
}
$_SESSION[check_pic] = $rand;
*/
$image = imagecreatetruecolor(100, 30);
$bg = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, 255, 255, 255);
//imagestring($image, rand(1,6), rand(3,60), rand(3,15), $rand, $color);
for($i=0;$i<3;$i++) {
$color2 = imagecolorallocate($image, rand(0,255), rand(0,255),rand(0,255));
imageline($image, rand(0,100), 0, 100, 30, $color2);
}
//rand() ---->0-max 不大于100
for($i=0;$i<200;$i++) {
imagesetpixel($image, rand()%100, rand()%30, $color2);
}
//$str = iconv("gbk", "utf-8", "中");
$str = "中国";
$_SESSION[check_pic] = $str;
//解决中文,页面本身为utf-8
$str = mb_convert_encoding($str, "html-entities","utf-8" );
//2:字体大小 3:倾斜角度 x , y 坐标
imagettftext($image, 12, 0, 20, 20, $color, 'MSYH.TTF', $str);
//输出图片
header("Content-type: image/jpeg;charset=utf-8");
imagejpeg($image);
/*修改eclipse的配置,可以使得eclipse的新建项目的默认编码直接为UTF-8
在菜单栏的
Window->Preferences->General->Workspace->Text file encoding
将其改为UFT-8即可。*/
?>sub.php
立即学习“PHP免费学习笔记(深入)”;
<?php
header("Content-type: text/html;charset=utf-8");
session_start();
if($_POST[check]) {
if($_POST[check]==$_SESSION[check_pic]) {
echo "验证码正确:".$_SESSION[check_pic];
} else {
echo "验证码错误:".$_SESSION[check_pic];
}
}
?>
<form action="" method="post">
<img alt="" src="img.php"><br/>
<input type="text" name="check"><br/>
<input type="submit" value="提交">
</form>运行效果图如下:

相关推荐:
以上就是php实现的简单中文验证码功能示例的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号