Heim > Backend-Entwicklung > PHP-Tutorial > Implementierung der PHP-Bestätigungscodefunktion

Implementierung der PHP-Bestätigungscodefunktion

巴扎黑
Freigeben: 2016-11-23 13:32:12
Original
901 Leute haben es durchsucht

/**

*Bestätigungscodebild generieren

*/

öffentliche Funktion actionVerfiycode() {

Header ( "Content-type: image/gif" );

$border = 0; //Ob Rand 1 erforderlich ist: 0, nein

$how = 4; //Anzahl der Bestätigungscodeziffern

$w = $how * 15;

$h = 20; //Bildhöhe

$fontsize = 5; //Schriftgröße

$alpha = "abcdefghijkmnopqrstuvwxyz"; Buchstaben

$number = "0123456789"; //Bestätigungscode-Inhalt 2: Zahl

$randcode = ""; //Bestätigungscode-String-Initialisierung

srand ( ( double ) microtime () * 1000000 ); //Zufallszahlen-Seed initialisieren

$im = ImageCreate ($w, $h); //Verifizierungsbild erstellen

$bgcolor = ImageColorAllocate ($im , 255, 255, 255 ); //Legen Sie die Hintergrundfarbe fest

ImageFill ( $im, 0, 0, $bgcolor ); // Füllen Sie die Hintergrundfarbe

if ($border) {

$black = ImageColorAllocate ( $im, 0, 0, 0 ); //Legen Sie die Rahmenfarbe fest

ImageRectangle ( $im, 0, 0, $w - 1, $h - 1, $ black ); //Rahmen zeichnen

}

for($i = 0; $i < $how; $i ) {

$alpha_or_number = mt_rand ( 0 , 1 ); //Buchstaben oder Zahlen

$str = $alpha_or_number ? $alpha : $number;

$which = mt_rand ( 0, strlen ( $str ) - 1 ); / / Holen Sie sich welches Zeichen

$code = substr ( $str, $which, 1 ); // Holen Sie sich das Zeichen

$j 4 : $j 15 ; // Zeichenposition zeichnen

$color3 = ImageColorAllocate ( $im, mt_rand ( 0, 100 ), mt_rand ( 0, 100 ), mt_rand ( 0, 100 ) ); //Zeichenfarbe

ImageChar ( $im, $fontsize, $j, 3, $code, $color3 ); // Zeichen zeichnen

$randcode .= $code; // Bestätigungscode-Zeichenfolge hinzufügen

<🎜 Stück für Stück > }

for($i = 0; $i < 5; $i ) //Hintergrundinterferenzlinien zeichnen

{

$ color1 = ImageColorAllocate ( $im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); //Interferenzlinienfarbe

ImageArc ( $im, mt_rand ( - 5, $w ), mt_rand ( - 5, $h ), mt_rand ( 20, 300 ), mt_rand ( 20, 200 ), 55, 44, $color1 ); //Interferenzlinie

}

for($i = 0; $i < $how * 40; $i ) //Hintergrundinterferenzpunkte zeichnen

{

$color2 = ImageColorAllocate ( $im , mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); //Interferenzpunktfarbe

ImageSetPixel ( $im, mt_rand ( 0, $w ), mt_rand ( 0 , $h ), $color2 ); //Interferenzpunkt

}

$session=new CHttpSession;

$session->open();

Yii::app()->session->add('randcode',$randcode);

/*Ende der Zeichnung*/

Imagegif ( $im ) ;

ImageDestroy ( $im );

/*Ende der Zeichnung*/

}

Verwandte Etiketten:
php
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage