欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

php验证安全码,PHP 高自定义性安全验证码的简单示例

发布时间:2025/3/20 78 豆豆
生活随笔 收集整理的这篇文章主要介绍了 php验证安全码,PHP 高自定义性安全验证码的简单示例 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

搜索热词

感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。

经测试代码如下:

/**

* 安全验证码

*

* @param

* @author 编程之家 jb51.cc jb51.cc

**/

public function captcha(){

$font_dir = $_SERVER ["DOCUMENT_ROOT"] . "your_ttf_file.ttf"; // 字体库

$img_w = 58; // 设置图片宽

$img_h = 20; // 设置图片高

$font_size = 11; // 字体大小

$angle_l = -10; // 左偏角

$angle_r = 10; // 右偏角

$code_str = "ABCDEFGHJKLMNPQRSTUVWXYZ36";

$word_len = 4; // 验证码位数

$padding = 5; // 每两个文字之间间隔

$margin = 2; // 左侧边距

$base_line = 15; // 文字基线位置

$base_line_offset = 2; // 基准线偏移量

$pixel_num = 3; // 杂点数目基数

$pixel_color= 8; // 杂点只有 $pixel_color 种颜色 总的杂点数为$pixel_num*$pixel_color

$noise_font_size = 1; // 杂点字体大小

$session_key= "my_captcha"; //自定义session键名

header("Cache-Control: no-cache,must-revalidate");

header("Expires: Mon,26 Jul 1997 05:00:00 GMT");

header("Pragma: no-cache");

header("Cache-control: private");

header('Content-Type: image/png');

session_start();

$word = "";

$code_str_len = strlen($code_str) - 1;

for ($i = 0; $i < $word_len; $i++) {

$word.= $code_str[rand(0,$code_str_len)];

}

$_SESSION [$session_key] = strtolower($word);

$image = imagecreatetruecolor($img_w,$img_h);

imagefilledrectangle($image,$img_w - 1,$img_h - 1,imagecolorallocate($image,mt_rand(235,255),255)));

//绘制杂点

for($i = 0; $i < $pixel_color; $i++){

$noise_color = imagecolorallocate( $image,mt_rand(150,225),225) );

for($j = 0; $j < $pixel_num; $j++) {

imagestring( $image,$noise_font_size,mt_rand(-10,$img_w),$img_h),$code_str[mt_rand(0,$code_str_len)],$noise_color );

}

}

//绘制文字

for ($i = 0; $i < $word_len; ++$i) {

$color = imagecolorallocate($image,mt_rand(0,100),mt_rand(20,120),mt_rand(50,150));

imagettftext($image,$font_size,mt_rand($angle_l,$angle_r),$margin,mt_rand($base_line-$base_line_offset,$base_line+$base_line_offset),$color,$font_dir,mb_substr($word,$i,1,'utf-8'));

$margin += (imagefontwidth($font_size) + $padding);

}

imagepng($image);

imagedestroy($image);

exit;

}

/*** 来自编程之家 jb51.cc(jb51.cc) ***/

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的php验证安全码,PHP 高自定义性安全验证码的简单示例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。