文档详情

php开发实例用户登陆模块的实现[用户权限的控制、验证码的生成].docx

发布:2017-03-21约7.38千字共10页下载文档
文本预览下载声明
PHP开发一个用户登陆模块,关键技术(session会话、cookie应用、GD库应用)大家好,今日我们一起来开发一个PHP随机验证码的生成实例。首先,我们来看一下效果:开发随机验证码使用到的函数有以下几个。如果有不明白这些函数的使用方法的朋友,请参考PHP5开发手册。1.imagecreatetruecolor();//创建一个真彩的画布2.imagecolorallocate();//分配颜色3.imagefill();//填充颜色4.imagerectangle();//画一个矩形,用于绘制验证码的边框5.imagettftext();//将文本内容写入到图像中6.imagesetpixel();//绘制一个单一像素6imageline();//绘制一条线7.imagepng();//输出图像8.imagedesctroy();//销毁图像,释放内容PHP开发随机验证码的步骤与思路获取随机验证码的内容创建一个真彩画布,分配字体颜色跟背景颜色开始绘画输出图像销毁图像自定义一个函数用来获取随机验证码(本人目前在淘宝网上注册了一家小小的店铺,主要营业服装之类的商品。有兴趣有需要的朋友请访问:可以直联系到本人!)接下来我们开始开发,在网站的根目录下新建一个PHP文件(code.php):?phpsession_start();//生成随机验证码$num=4;$str=getCode($num,0);$_SESSION[code]=$str;//1.创建图像,定义颜色$width=$num*20;$height=25;$im=imagecreatetruecolor($width,$height);//1.1字体颜色$color[] = imagecolorallocate($im,111,0,55);$color[] = imagecolorallocate($im,0,77,0);$color[] = imagecolorallocate($im,0,0,160);$color[] = imagecolorallocate($im,221,111,0);$color[] = imagecolorallocate($im,220,0,0);//1.2背景颜色$bgcolor = imagecolorallocate($im,240,240,240);//2.开始绘画,使用imagefill()、imagerectangle()函数给图像增加背景颜色与边框颜色imagefill($im,0,0,$bgcolor);imagerectangle($im,0,0,$width-1,$height-1,$color[rand(0,4)]);//2.1使用imagettftext()函数,将文本内容写入到图像中for($i=0;$i$num;$i++){imagettftext($im,14,rand(-20,20),5+(18*$i),20,$color[rand(0,4)],msyh.ttf,$str[$i]);}//2.2使用imagesetpixel()增加小于100个的干扰点for($i=0;$i100;$i++){//随机颜色$c=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));imagesetpixel($im,rand(0,$width),rand(0,$height),$c);}//2.3使用imageline()增加小于$num个数的干扰线for($i=0;$i$num;$i++){//随机颜色$c=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));imageline($im,rand(0,$width),rand(0,$height),rand(0,$width),rand(0,$height),$c);}//3.输出图像,通过header()函数,告诉浏览器输出PNG图像格式,而不是文本形式header(Content-Type:image/png);imagepng($im);//4.销毁图像,释放内容imagedestroy($im);//5.自定义函数,获取随机验证码function getCode($m=4,$type=0){//随机验证码的内容$str=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;//各个类型验证码索引数组的结束位置,9的位置是纯数字结束位置,35的位置为小写字母的结束位置,62的位置为大写字母的结束位置//因位置是从0开始计算,所以最后的位置应减1.$t=array(
显示全部
相似文档