Red de conocimiento informático - Material del sitio web - Cómo generar código de verificación usando PHP

Cómo generar código de verificación usando PHP

El principio de usar PHP para generar códigos de verificación: use la biblioteca GD de PHP para generar imágenes con códigos de verificación y guarde los códigos de verificación en la sesión. El proceso general de usar PHP para generar códigos de verificación es:

1. Generar una imagen png

2. 3. Establezca el color y el estilo de la fuente;

4. Genere un código de verificación aleatorio de 4 dígitos;

5.

4. Genere aleatoriamente un código de verificación de 4 dígitos;

5. Ajuste el ángulo de rotación y la posición para dibujar cada carácter en la imagen. Ajuste el ángulo de rotación y la posición de cada carácter generado y dibújelo en la imagen png;

6. Agregue líneas de ruido e interferencia para evitar que la máquina de registro analice la imagen original para descifrar maliciosamente el código de verificación;<. /p >

7. Generar la imagen;

8. Liberar la memoria ocupada por la imagen.

session_start();?

getCode(4,60,20);?

función?getCode($num,$w,$h)?{

$código?

for($i?=?0;? $i?

$código = rand(0, 9 );?

}?

// ¿También puedes usar rand(1000,9999) para generar directamente un código de verificación de 4 dígitos?

// ¿Escribir el código de verificación generado en la sesión para su verificación?

$_SESSION["helloweba_num"]? =?$code;?

//¿Crear una imagen y definir valores de color?

header("Tipo de contenido:?image/PNG");?

$im =?imagecreate($w,? $h);?

$negro?=?imagecolorallocate($im,?0,?0,?0);?

$gris?=?imagecolorallocate($im,?200,?200,?200);?

$bgcolor?=?imagecolorallocate($im,?255,?255,?255);?

/¿Rellenar fondo?

imagefill($im,?0,?0,? $gray);?

/ ¿Dibujar borde?

imagerectangle($im,?0,?0,? $w-1,? $h-1,? $black);?

// Dibuja dos líneas de puntos aleatorias ¿Para distraer?

$estilo?=?array?($negro,$negro,$negro,$negro,$negro,$negro,?

$gris,$gris,$gris, $gris,$gris?

);?

imagesetstyle($im,? $estilo);?

$y1 = rand(0,? $ h);?

$y2?=?rand(0,? $h);?

$y3?=?rand(0,? $h);?

$y4?=?rand(0,? $h);?

imageline($im,?0,? $y1,? $w,? $y3,?IMG_COLOR_STYLED) ;?

imageline($im,?0,? $y2,? $w,? $y4,?IMG_COLOR_STYLED);?

// Generar aleatoriamente una gran cantidad de negros líneas en el lienzo Haga clic para distraer;?

for($i?=?0;? $i?

imagesetpixel($im,?rand(0,? $w ),?rand(0,? $h),? $black);?

}?

//Muestra números aleatoriamente en el lienzo, el espaciado horizontal y la posición del ¿Los caracteres se generan aleatoriamente dentro del rango de fluctuación?

$strx =?rand(3,?8);?

for($i?=?0;? $i?

$strpos = rand(1,?6);?

imagestring($im,?5,?$strx,?$strpos,?substr($código,? $i,?1),?$black);?

$strx?

}?

imagepng($im); // ¿Imagen de salida?

imagede

stroy($im);//¿Liberar la memoria ocupada por la imagen?

}

?