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

Implementierung der PHP-Bestätigungscodefunktion

巴扎黑
巴扎黑Original
2016-11-23 13:32:12878Durchsuche

/**

*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*/

}

Stellungnahme:
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
Vorheriger Artikel:PHP-RegistrierungscodeNächster Artikel:PHP-Registrierungscode