Rumah php教程 php手册 一个漂亮的验证码

一个漂亮的验证码

Jun 06, 2016 pm 07:32 PM
boleh fon import Milik sendiri perlukan mengesahkan

自己导入字体,可以按照自己的额需要随便修改。 无 ?phpclass Imagecode{private $width ;private $height;private $counts;private $distrubcode;private $fonturl;private $session;function __construct($width = 120,$height = 30,$counts = 5,$distrubco

自己导入字体,可以按照自己的额需要随便修改。
<?php
	class Imagecode{
		private $width ;
		private $height;
		private $counts;
		private $distrubcode;
		private $fonturl;
		private $session;
		function __construct($width = 120,$height = 30,$counts = 5,$distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",$fonturl="C:\Windows\Fonts\TektonPro-BoldCond.otf"){
			$this->width=$width;
			$this->height=$height;
			$this->counts=$counts;
			$this->distrubcode=$distrubcode;
			$this->fonturl=$fonturl;
			$this->session=$this->sessioncode();
			session_start();
			$_SESSION['code']=$this->session;
		}
		
		 function imageout(){
			$im=$this->createimagesource();
			$this->setbackgroundcolor($im);
			$this->set_code($im);
			$this->setdistrubecode($im);
			ImageGIF($im);
			ImageDestroy($im); 
		}
		
		private function createimagesource(){
			return imagecreate($this->width,$this->height);
		}
		private function setbackgroundcolor($im){
			$bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));//±3?°??é?
			imagefill($im,0,0,$bgcolor);
		}
		private function setdistrubecode($im){
			$count_h=$this->height;
			$cou=floor($count_h*2);
			for($i=0;$i<$cou;$i++){
				$x=rand(0,$this->width);
				$y=rand(0,$this->height);
				$jiaodu=rand(0,360);
				$fontsize=rand(8,15);
				$fonturl=$this->fonturl;
				$originalcode = $this->distrubcode;
				$countdistrub = strlen($originalcode);
				$dscode = $originalcode[rand(0,$countdistrub-1)];
				$color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));
				imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);
				
			}
		}
		private function set_code($im){
				$width=$this->width;
				$counts=$this->counts;
				$height=$this->height;
				$scode=$this->session;
				$y=floor($height/2)+floor($height/4);
				$fontsize=rand(30,35);
				$fonturl="C:\Windows\Fonts\AdobeGothicStd-Bold.otf";//$this->fonturl;
				
				$counts=$this->counts;
				for($i=0;$i<$counts;$i++){
					$char=$scode[$i];
					$x=floor($width/$counts)*$i+8;
					$jiaodu=rand(-20,30);
					$color = ImageColorAllocate($im,rand(0,50),rand(50,100),rand(100,140));
					imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$char);
				}
				
			
			
		}
		private function sessioncode(){
				$originalcode = $this->distrubcode;
				$countdistrub = strlen($originalcode);
				$_dscode = "";
				$counts=$this->counts;
				for($j=0;$j<$counts;$j++){
					$dscode = $originalcode[rand(0,$countdistrub-1)];
					$_dscode.=$dscode;
				}
				return $_dscode;
				
		}
	}
	Header("Content-type: image/GIF");
	$imagecode=new  Imagecode(160,50);
	$imagecode->imageout();

Salin selepas log masuk
一个漂亮的验证码
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menukar fon dalam Outlook pada telefon mudah alih Apple Bagaimana untuk menukar fon dalam Outlook pada telefon mudah alih Apple Mar 08, 2024 pm 04:46 PM

Bagaimana untuk menukar fon dalam Outlook pada telefon mudah alih Apple

Bagaimana untuk menjadikan fon telefon bimbit vivo lebih besar dan tempat untuk menetapkannya Bagaimana untuk menjadikan fon telefon bimbit vivo lebih besar dan tempat untuk menetapkannya Feb 24, 2024 pm 06:16 PM

Bagaimana untuk menjadikan fon telefon bimbit vivo lebih besar dan tempat untuk menetapkannya

Bagaimana untuk menyelesaikan masalah kabur fon win11 Bagaimana untuk menyelesaikan masalah kabur fon win11 Jan 13, 2024 pm 09:00 PM

Bagaimana untuk menyelesaikan masalah kabur fon win11

Bagaimana untuk mengesahkan tandatangan dalam PDF Bagaimana untuk mengesahkan tandatangan dalam PDF Feb 18, 2024 pm 05:33 PM

Bagaimana untuk mengesahkan tandatangan dalam PDF

Bagaimana untuk menukar fon Xiaomi 11_Cara menukar fon Xiaomi 11 Bagaimana untuk menukar fon Xiaomi 11_Cara menukar fon Xiaomi 11 Mar 25, 2024 pm 07:26 PM

Bagaimana untuk menukar fon Xiaomi 11_Cara menukar fon Xiaomi 11

Bagaimana untuk mengimport lagu tempatan daripada NetEase Cloud Music Bagaimana untuk mengimport lagu tempatan Bagaimana untuk mengimport lagu tempatan daripada NetEase Cloud Music Bagaimana untuk mengimport lagu tempatan Mar 13, 2024 am 11:19 AM

Bagaimana untuk mengimport lagu tempatan daripada NetEase Cloud Music Bagaimana untuk mengimport lagu tempatan

Kaedah terperinci untuk menyahsekat menggunakan pengesahan bantuan rakan WeChat Kaedah terperinci untuk menyahsekat menggunakan pengesahan bantuan rakan WeChat Mar 25, 2024 pm 01:26 PM

Kaedah terperinci untuk menyahsekat menggunakan pengesahan bantuan rakan WeChat

Bagaimana untuk menukar fon dalam pelayar QQ mudah alih Bagaimana untuk menukar fon dalam pelayar QQ mudah alih Apr 07, 2024 pm 06:43 PM

Bagaimana untuk menukar fon dalam pelayar QQ mudah alih

See all articles