PHP验证码高洛峰细说PHP-创新互联
前端页面index.php
网站建设、做网站服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!'; }else{ echo '输入不对
'; } } ?>
生成验证码图片test.php
getCode(); //将验证码的图片输出 $vcode->outimg();//调用方法验证码类 print.php
width = $width; $this->heigth = $height; $this->num = $num; $this->code = $this->createCode(); } //获取字符的验证码 function getCode(){ return $this->code; } //输出验证码图形 function outimg(){ //创建背景 颜色 大小 边框 $this->createBack(); //画字 大小 字体颜色 $this->outString(); //干扰元素 点 线条 $this->setDisturb(); //输出图像 $this->printImg(); } //创建背景 private function createBack(){ //创建资源 $this->img = p_w_picpathcreatetruecolor($this->width, $this->heigth); //设置随机背景颜色 $bgcolor = p_w_picpathcolorallocate($this->img, rand(225, 255), rand(225, 255), rand(225, 255)); //填充背景色 p_w_picpathfill($this->img, 0, 0, $bgcolor); //画矩形 $bordercolor = p_w_picpathcolorallocate($this->img, 0, 0, 0); p_w_picpathrectangle($this->img, 0, 0, $this->width-1, $this->heigth-1, $bordercolor); } //画字 private function outString(){ for($i=0;$i<$this->num;$i++){ $color = p_w_picpathcolorallocate($this->img, rand(0, 128), rand(0, 128), rand(0, 128)); $font = rand(3,5); $x = 3 + ($this->width/$this->num)*$i; $y = rand(1, 5); p_w_picpathstring($this->img, $font,$x, $y, $this->code{$i}, $color); } } //设置干扰元素 private function setDisturb(){ //加上点数 for($i=0;$i<100;$i++){ $color = p_w_picpathcolorallocate($this->img, rand(0, 255), rand(0, 255), rand(0, 255)); p_w_picpathsetpixel($this->img, rand(1, $this->width-2), rand(1, $this->heigth-2), $color); } //加上线条 for($i=0;$i<10;$i++){ $color = p_w_picpathcolorallocate($this->img, rand(0, 255), rand(0, 128), rand(0, 255)); p_w_picpatharc($this->img, rand(-10, $this->width+10), rand(-10, $this->heigth+10), rand(30, 300), rand(30, 300), 55, 44, $color); } } //输出图像 private function printImg(){ // header("Content-Type:p_w_picpath/jpeg"); // p_w_picpathjpeg($this->img); if(p_w_picpathtypes() & IMG_GIF){ header("Content-Type:p_w_picpath/gif"); p_w_picpathjpeg($this->img); }elseif(p_w_picpathtypes() & IMG_JPEG){ header("Content-Type:p_w_picpath/jpeg"); p_w_picpathjpeg($this->img); }elseif(p_w_picpathtypes() & IMG_JPG){ header("Content-Type:p_w_picpath/jpg"); p_w_picpathjpeg($this->img); }elseif(p_w_picpathtypes() & IMG_PNG){ header("Content-Type:p_w_picpath/png"); p_w_picpathjpeg($this->img); } } //生成验证码 private function createCode(){ $codes = "23456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ"; $code = ""; for($i=0;$i<$this->num;$i++){ $code .=$codes{rand(0,strlen($codes)-1)}; } return $code; } //释放图像资源 function __destruct(){ p_w_picpathdestroy($this->img); } }另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
标题名称:PHP验证码高洛峰细说PHP-创新互联
新闻来源:http://scjbc.cn/article/djcgos.html