Ir para conteúdo
Fórum Script Brasil
  • 0

A função captcha


Frank K Hosaka

Pergunta

Eu encontrei um código da função captcha no fórum iMasters. Ele precisa do arquivo Open-Sans-Regular.ttf que você encontra nesse link: edx-fonts/open-sans/fonts/Regular/OpenSans-Regular.ttf at master · edx/edx-fonts (github.com)

mysql

CREATE TABLE `tab_logar` (
  `ggid` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `ggLogin` varchar(50) DEFAULT NULL,
  `ggSenha` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`ggid`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

(1,"joao","123")

=================================================================================


captcha.php

<?php
function funcCaptcha($text){
  	$width = 200;
	$height = 100;
	$fontfile = "OpenSans-Regular.ttf";
	$image = imagecreatetruecolor($width, $height);
	$white = imagecolorallocate($image, 255, 255, 255);
	$black = imagecolorallocate($image, 0, 0, 0);
	imagefill($image, 0, 0, $white);
	imagettftext($image, 25, rand(-20,20), $width/4, 60, $black, $fontfile, $text);
	$warped_image = imagecreatetruecolor($width, $height);
	imagefill($warped_image, 0, 0, imagecolorallocate($warped_image, 255, 255, 255));
	for ($x=0; $x < $width; $x++) { 
		# code...
		for ($y=0; $y < $height; $y++) { 
			# code...
			$index = imagecolorat($image, $x, $y);
			$color_comp = imagecolorsforindex($image, $index);
			$color = imagecolorallocate($warped_image, $color_comp['red'], $color_comp['green'], $color_comp['blue']);
			$imageX = $x;
			$imageY = intval($y + sin($x / 10)) ;
			imagesetpixel($warped_image, $imageX, $imageY, $color);
		}
	}
	$path = "capacha.jpg";
	imagejpeg($warped_image,$path);
	imagedestroy($warped_image);
	imagedestroy($image);
	return $path;
}

=======================================================================

index.php

<?php
include('captcha.php');
$ggCon = mysqli_connect("localhost","root","","laravel"); 
$phpSelf = $_SERVER['PHP_SELF'];
$mensagem="";
if(isset($_POST['ggLogin'])){
	$gg_id     = $_POST['gg_id'];
	$ggLogin   = $_POST['ggLogin']; 
	$ggSenha   = $_POST['ggSenha']; 
	$ggCaptcha = $_POST['ggCaptcha'];
	$text88    = $_POST['text88'];
	if($ggCaptcha!==$text88){
		$mensagem="Favor digitar o Captcha corretamente";
		goto gambiarra;}
	$sqlVF = mysqli_query($ggCon, "SELECT * FROM tab_logar WHERE 
		ggLogin = '".$ggLogin."' AND ggSenha = '".$ggSenha."'  ");
	$AcompararDados = mysqli_num_rows($sqlVF);
	if($AcompararDados == true){
		$_SESSION['gg_id'] = $gg_id; 
		print "usuário logado";exit;}
	else{
		print "não logou";exit;}}
$text88 = rand(10000,99999);
$myimage = funcCaptcha($text88);
gambiarra: ?>
<form action="<?=$phpSelf?>" method="post" style="width:200px;padding:1em;margin:auto">
<h1>Acessar painel</h1>
<table>
	<tr><td>Id<td><input name=gg_id value=1>
	<tr><td>Login<td><input name="ggLogin" value='joao'>
	<tr><td>Senha<td> <input name="ggSenha" value='123'>
	<tr><td>Digite o código<td><input name="ggCaptcha">
	<tr><td><img src="capacha.jpg" style="width:150px;" alt="código captcha"><br>
 	<input type=hidden name=text88 value=<?=$text88?>>
 	<tr><td><input type=submit>
</table>
 <p><h4><?=$mensagem?></h4></p>
</form>

 

Captura de tela 2023-11-06 204752.png

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...