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 }