PHP generiert eine Bildverifizierungscode-Demo [OOP objektorientierte Version]
PHP生成图片验证码demo【OOP面向对象版本】
下面是我今天下午用PHP写的一个生成图片验证码demo,仅供参考。
这个demo总共分为4个文件,具体代码如下:
1、code.html中的代码:
<!doctype html> <html> <head> <meta charset="utf-8" /> <title>登录、注册验证码生成</title> </head> <body> <!-- * @Description 网站登录/注册验证码生成类 * @Author 赵一鸣 * @OnlineDemo http://www.zymseo.com/demo/verificationcode/code.html * @Date 2016年10月6日 --> <form action="checkcode.php" method="post"> <input type="text" name="code" /><br/> <img src="/static/imghw/default1.png" data-src="showcode.php" class="lazy" onclick="this.setAttribute('src','showcode.php?'+Math.random())" / alt="PHP generiert eine Bildverifizierungscode-Demo [OOP objektorientierte Version]" > <span>看不清?点击图片即可切换验证码</span><br/> <input type="submit" name="sub" value="登录/注册" /> </form> </body> </html>
Nach dem Login kopieren
2、createcode.class.php中的代码:
<?php /** * @Description 网站登录/注册验证码生成类 * @Author 赵一鸣 * @OnlineDemo http://www.zymseo.com/demo/verificationcode/code.html * @Date 2016年10月6日 */ class Createcode{ //画布资源 public $img; //画布宽度 private $img_width; //画布高度 private $img_height; //画布颜色 private $img_bgcolor; //验证码文字内容 private $str_content; //生成的验证码内容 private $code_content; //验证码颜色 private $code_content_color; //构造函数 public function __construct($img_width,$img_height,$str_content,$code_content_color){ if($this->gdcheck()){ $this->img_width = $img_width; $this->img_height = $img_height; $this->str_content = $str_content; $this->code_content_color = $code_content_color; $this->get_code(); $this->session_code(); } } //生成画布 public function get_img(){ //定义画布 $this->img = imagecreatetruecolor($this->img_width, $this->img_height); //画布背景色 $this->img_bgcolor = imagecolorallocate($this->img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //给画图填充背景色 imagefill($this->img, 0, 0, $this->img_bgcolor); //取得画布的宽高 $img_width = imagesx($this->img); $img_height = imagesy($this->img); //画布中插入验证码 imagestring($this->img, 5, ($this->img_width/3), ($this->img_height/2.5), $this->code_content, imagecolorallocate($this->img, hexdec(substr($this->code_content_color, 1,2)), hexdec(substr($this->code_content_color, 3,2)), hexdec(substr($this->code_content_color, 5,2)))); //画布中插入像素点 $this->get_pix(); //画布中插入直线 $this->get_line(); //画布显示 header('Content-type:image/png'); imagepng($this->img); } //生成验证码 private function get_code(){ $str_content_len = strlen($this->str_content); for($i=0;$i<4;$i++){ $this->code_content .= substr($this->str_content, mt_rand(0,$str_content_len-1),1); } } //生成像素点 private function get_pix(){ for($j=0;$j<300;$j++){ $image_pix .= imagesetpixel($this->img, mt_rand(0,$this->img_width), mt_rand(0,$this->img_height), imagecolorallocate($this->img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255))); } return $image_pix; } //生成直线 private function get_line(){ for($l=0;$l<2;$l++){ $img_line .= imageline($this->img, mt_rand(0,$this->img_width), mt_rand(0,$this->img_height), mt_rand(0,$this->img_width), mt_rand(0,$this->img_height), imagecolorallocate($this->img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255))); } return $img_line; } //session存储验证码 private function session_code(){ session_start(); $_SESSION['code'] = $this->code_content; } //判断程序是否支持GD库 private function gdcheck(){ if(extension_loaded('gd')){ return true; }else{ return false; exit(); } } }
Nach dem Login kopieren
3、checkcode.php中的代码:
<?php /** * @Description 网站登录/注册验证码生成类 * @Author 赵一鸣 * @OnlineDemo http://www.zymseo.com/demo/verificationcode/code.html * @Date 2016年10月6日 */ header('Content-type:text/html;charset="utf-8"'); session_start(); if($_POST['code']!=''){ if($_SESSION['code']==$_POST['code']){ echo '<script type="text/javascript"> alert("验证码填写成功"); history.go(-1); </script>'; }else{ echo '<script type="text/javascript"> alert("验证码填写失败"); history.go(-1); </script>'; } }
Nach dem Login kopieren
4、showcode.php中的代码:
<?php /** * @Description 网站登录/注册验证码生成类 * @Author 赵一鸣 * @OnlineDemo http://www.zymseo.com/demo/verificationcode/code.html * @Date 2016年10月6日 */ function __autoload($classname){ include strtolower($classname).'.class.php'; } //定义验证码的取值范围 $str_content = 'abcdefghijklmnopqrstuvwxyz0123456789'; //验证码文字颜色 $code_content_color = '#ffffff'; //初始化对象 $code = new Createcode(100,30,$str_content,$code_content_color); $code->get_img();
Nach dem Login kopieren
原文地址:http://www.zymseo.com/php/334.html
转载请注明出处!
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
Assassin's Creed Shadows: Seashell Riddle -Lösung
1 Wochen vor
By DDD
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor
By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen
CakePHP-Tutorial
1374
52

