PHP implementa função de código de verificação

 

 

Código da página de login login:

<! DOCTYPE html > 
< html > 
< head > 
    < meta charset = "UTF-8" > 
    < title >登陆</ title > 
</ head > 
< corpo > 
    < ação da forma = "./ test.php" method = "post" > < img src = "imagem_captcha.php"   onclick = "this.src = 'imagem_captcha.php?' + nova data (). getTime ();" width = "140"
        
        < ENTRADA tipo = "texto" nome = "captcha" espaço reservado = "Por favor, insira o código de verificação da imagem" > < br /> 
        < ENTRADA tipo = "Enviar" valor = "Verificar" > 
    </ formar > 
</ corpo > 
< / html >

 

Gere código de verificação:

<? php
 / * * 
 * Geração de códigos de verificação para letras + números 
 * / 
// Abrir sessão 
session_start ();
 // 1. Crie uma tela preta 
$ image = imagecreatetruecolor (100, 30 ); 

// 2. Defina a tela (plano de fundo ) Color 
$ bgcolor = imagecolorallocate ( $ image , 255, 255, 255 ); 

// 3. Preencha o 
imagefill em cores ( $ image , 0, 0, $ bgcolor ); 

// 4. Defina o conteúdo do código de verificação 

// 
4.1 defina o código de verificação O conteúdo de $ content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ; 

// 4.1 Crie uma variável para armazenar os dados do código de verificação gerados, o que é conveniente para os usuários enviarem e verificarem 
$ captcha= "" ;
 for ( $ i = 0; $ i <4; $ i ++ ) {
     // tamanho da fonte 
    $ fontsize = 10 ;
     // cor da fonte 
    $ fontcolor = imagecolorallocate ( $ image , mt_rand (0, 120), mt_rand (0, 120), mt_rand (0, 120 ));
     // Define o conteúdo da fonte 
    $ fontcontent = substr ( $ content , mt_rand (0, strlen ( $ content )), 1 );
     $ captcha . =$ fontcontent ;
     // Coordenadas exibidas 
    $ x = ( $ i * 100/4 ) + mt_rand (5, 10 );
     $ y = mt_rand (5, 10 );
     // Preencha o conteúdo na 
    imagem ( $ image , $ fontsize , $ x , $ y , $ fontcontent , $ fontcolor ); 
} 

$ _SESSION ["image_captcha"] = $ captcha ; 

// 4.3 Defina o elemento de interferência em segundo plano 
para ($ $ i = 0; $ i <200; $ i + +) {
     $ pointcolor = imagecolorallocate ( $ image , mt_rand (50, 200), mt_rand (50, 200), mt_rand (50, 200 )); 
    imagesetpixel ( $ image , mt_rand (1, 99), mt_rand (1, 29), $ pointcolor ); 
} 

// 4.4 
para for ( $ i = 0; $ i <3; $ i ++ ) {
     $ linecolor = imagecolorallocate ( $ image , mt_rand (50, 200), mt_rand (50, 200), mt_rand(50, 200 )); 
    imageline ( $ image , mt_rand (1, 99), mt_rand (1, 29), mt_rand (1, 99), mt_rand (1, 99), mt_rand (1, 29), $ linecolor ); 
} 

// 5. O navegador exibe o cabeçalho de informações do 
cabeçalho da imagem ('content-type: image / png' ); 

// 6. Envia a imagem para o navegador 
imagepng ( $ image ); 

// 7. Destrói a imagem 
imagedestroy ( $ image );

Verifique o código de entrada:

<? php
 / * * 
 * Aceite o código de verificação enviado pelo usuário ao fazer login 
 * / 
session_start ();
 // 1. Obtenha o código de verificação enviado pelo usuário 
$ captcha = $ _POST ["captcha" ];
 // 2. Transfira a sessão O código de verificação e o código de verificação enviado pelo usuário são verificados. Quando o código de verificação é bem-sucedido, o código de verificação está correto. Se não for bem-sucedido, volte e reenvie 
se ( strtolower ( $ _SESSION ["image_captcha"]) == strtolower ( $ captcha )) {
     echo " <h5> sim! O código de verificação está correto! </ h5> " ; 
} else {
     echo " NÃO! O código de verificação foi enviado incorretamente! " ;
     cabeçalho (" atualização: 3; url =. / login.php ");// Digite o erro para ir para a página de login
}

 

Acho que você gosta

Origin www.cnblogs.com/niusdtz/p/12683415.html
Recomendado
Clasificación