重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP中怎么实现中文汉字验证码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
成都创新互联公司长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为全椒企业提供专业的成都网站建设、网站设计,全椒网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
1.算式验证码:
session_start();
header("Content-type:image/png");
$num1=mt_rand(0,9);//第一位数
$num2=mt_rand(1,9);//第二位数
$type_str="+-*";//方法字符串集合
$type=substr($type_str,rand(0,2),1);//随机方法
$change=mt_rand(1,3);
if($change==1){
$code="$num1$type$num2=";
$result="\$verifyCode=$num1$type$num2;";
eval($result);
$_SESSION['authnum_session']=$verifyCode;
}elseif($change==2){
$result="\$verifyCode=$num1$type$num2;";
eval($result);
$code=$num1.$type."_=".$verifyCode;
$_SESSION['authnum_session']=$num2;
}elseif($change==3){
$result="\$verifyCode=$num1$type$num2;";
eval($result);
$code="_".$type.$num2."=".$verifyCode;
$_SESSION['authnum_session']=$num1;
}
$im=imagecreate(68,28);
$black=imagecolorallocate($im,0,0,0);
$white=imagecolorallocate($im,255,255,255);
$gray=imagecolorallocate($im,200,200,200);
$red=imagecolorallocate($im,255,0,0);
imagefill($im,0,0,$white);
imagestring($im,5,10,8,$code,$black);
for($i=0;$i<70;$i++){>
PHP中文汉字验证码怎么实现
session_start();
$ch_str="的一是在了不和有大这主中人上为们地个用工时要动国产以我到他会作来分生对于学下级就年阶义发成部民
$len=mb_strlen($ch_str,"utf-8");//汉字长度
$str=array();
for($i=0;$i<4;$i++){ $pos=mt_rand(0,$len-5);//开始位置 $str[]=mb_substr($ch_str,$pos,1,"utf-8"); } $authnum_session=implode("",$str); $_SESSION['authnum_session']=$authnum_session;//记录到session Header("Content-type:image/PNG"); //图片的长和高 $image_x=100; $image_y=50; $im=imagecreate($image_x,$image_y); //这里取图片底色为白色 $bkg=ImageColorAllocate($im,255,255,255); //显示的字体样式,这个要把文件放到对应的目录中,假如你没有文件就去window的字体文件中找一个吧。 $fnt="simhei.ttf"; //为图像分配一些颜色 $white=ImageColorAllocate($im,234,185,95); //在图片上画椭圆弧,指定下坐标点 imagearc($im,150,8,20,20,75,170,$white); imagearc($im,180,7,50,30,75,175,$white); //在图片上画一条线段,指定下坐标点 imageline($im,20,20,180,30,$white); imageline($im,20,18,170,50,$white); imageline($im,25,50,80,50,$white); //乱点的数量 $noise_num=3000; $line_num=50; //各种混乱字符的颜色 $rectangle_color=imagecolorallocate($im,0xAA,0xAA,0xAA); $noise_color=imagecolorallocate($im,0x00,0x00,0x00); $font_color=imagecolorallocate($im,0x00,0x00,0x00); for($i=0;$i<$noise_num;$i++) { //在一个坐标点上画一个单一像素,这个点上面定义了,是黑色的。 //imagesetpixel($im,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color); } for($i=0;$i<$line_num;$i++) { $line_color=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)); //在两个坐标点间画一条线,颜色在上面定义 imageline($im,mt_rand(0,$image_x),mt_rand(0,$image_y),mt_rand(0,$image_x),mt_rand(0,$image_y),$line_color); } for($i=0;$i<4;$i++)>
注意:
中文汉字验证码单独执行,然后获取session会发现验证码和session内容不一致。但是在img标签中src属性中引用这个中文汉字验证码文件时,然后获取session,这时两者内容时一致的。
关于PHP中怎么实现中文汉字验证码问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。