黑马程序员_PHP_课程同步笔记day41:验证码模块讲解由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“黑马程序员php笔记”。
【黑马程序员济南】PHP模块讲解之验证码部分
在日益庞大的网民的面前,如何能够合理的规避以防止服务器被恶意DoS攻击或者不法之徒利用机器程序自动贴牛皮癣广告?一条小小的验证码功能就可以阻挡大部分的问题,所以今天我们就来研究一下如何生成验证码。
要求:
码值:有4位,大写字母和数字组成验证码图像:存在背景,在有限的图像中选择作为背景。文字居中显示,文字颜色有白色黑色 码值
[PHP] 纯文本查看 复制代码 ?
01
05 * 有4位,大写字母和数字组成 06 * 随机生成 07 */ 08
黑马程序员济南中心 编著
09 //列出所有的大写字母和数字作为一个集合$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789';11 $chars_len = strlen($chars);//获取集合长度 12 //规定验证码值的长度 14 $code_len = 4;15 //初始化验证码值 16 $code = '';17 //随机选取4位字符for($i = 0;$i
$rand_index = mt_rand(0,$chars_len-1);21 //将获取到的下标从字符的集合中取出并追加到$code中 22 $code.= $chars[$rand_index];23 } 24 //$code就是我想获取到的4位的随机数 25 echo $code;存生成好的验证码我们是需要将其保存起来,用来验证用户输入的验证信息是否正确 而验证码只需要存在一个会话周期就可以了,所以就不需要存储到数据库中,我们将其存储于seion中。
[PHP] 纯文本查看 复制代码 ?
黑马程序员济南中心 编著2 3 //开启seion seion_start();$_SESSION['code'] = $code;验证码图像
简单字符串(字母数字)写在画布上的函数: imageString(画布,字体,位置x,位置y,字符串内容,颜色);字体:imagestring函数,使用的内置字体。由1-5表示。位置:由字符串左上角的坐标来确定
颜色:也是需要预先分配好的。imagecolorallocate()[PHP] 纯文本查看 复制代码 ?
01
04 * $image代表要将生成好的验证码写入到的画布 05 * $font 使用内置的字体,有1,2,3,4,5这5种型号 06 * $x,$y代表验证码在画布中的坐标位置 07 * $s 代表生成好的字符串 08 * $col 代表字体所用的颜色 09 */
黑马程序员济南中心 编著//取一张图片作为背景 11 $bg_file = '/1.jpg';12 //根据该图片,创建画布$image = imagecreatefromjpeg($bg_file);14 //分配字体颜色,随机分配,黑色或者白色 15 if(mt_rand(0,1)==1){ 16 //如果是1就是设置字体颜色为黑色 $str_color = imagecolorallocate($image,0,0,0);18 }else{ 19 //如果不是1就设置字体颜色为白色 $str_color = imagecolorallocate($image,255,0xff,255);21 } 22 //内置5号字体 24 $font = 5;25 //位置 26 $str_x = 50;27 $str_y = 5;28 //生成带验证码的图片imagestring($image,$font,$str_x,$str_y,$code,$str_color);
黑马程序员济南中心 编著
一定要输出图片和销毁画布: [PHP] 纯文本查看 复制代码 ?
这样我们就生成了一个验证码图片,不知道大家对今天的知识了解程度如何啊?
黑马程序员济南中心 编著