Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xatria

Controle de span??

Recommended Posts

Como eu posso colocar nos meus cadastro aquele controle de span onde o usuario que esta acessando o formulario tem que digitar umas letra que estao em uma imagem, para poder acessar o resto ou enviar um formulario???como no chat do uol?

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, pra isso o pessoal usa uma livraria extra, chamada GD

 

esse livraria permite a criacao de imagens dinamicamente, a estrutura do codigo segue da seguinte forma (vou explicar teoricamente):

 

1 - Primeiro você cria um PHP, q vai ser lido como um arquivo de imagem, ex: <img src="codigo.php">

2 - esse "codigo.php" vai receber pelo metodo GET, um numero, ou digito aleatorio ex: <img src="codigo.php?n=184687">

3 - o "codigo.php" vai pegar esse numero (ou digito) aleatorio, e vai fazer uma mudanca interna nele, essa mudanca, você q vai criar, um exemplo bem simples eh colocar os caracteres ao contrario, (184687 viraria 786481). bom, isso você q vai fazer do geito que achar melhor, mais fazer a alteracao eh importante(depois eu explico por que)

4 - o "codigo.php" vai gerar uma imagem, com o digito alterado, e esse codigo sera exibido, entaum eh soh você mandar o kra digitar

 

agora, vou explicar o porque do codigo tem q ser alterado:

 

se o codigo n for alterado, entaum o kra q quizer fazer o span, simplismente vai colocar o codigo igual, c ele n souber o numero de saida, ai ele n pode mandar d novo.

 

agora chega de teorias, vo coloca em pratica um codigo desses (usando o formato caractere ivertido)

 

codigo.php

PHP [/tr][tr]//arquivo codigo.php

 

$num = $_GET[num];

 

if(!$num) $num = "000000";

 

for($i = 5; $i >= 0; $i--)

{

$num2 .= $num[$i];

}

 

$im = imagecreate();

 

$tc = imagecolorallocate($im, 80, 80, 80);

 

ImageString ($im, 5, 12, 2, $num2, $tc);

 

imagejpeg($im);

 

imagedestroy($im);

[/tr]

 

formulario.php

<html><head><?phpsrand((double) microtime() * 1000000);$num = @rand(1, 999999);if($num < 10){        $num = "00000" . $num;}elseif($num < 100){        $num = "0000" . $num;}elseif($num < 1000){        $num = "000" . $num;}elseif($num < 10000){        $num = "00" . $num;}elseif($num < 100000){        $num = "0" . $num;}?><title> Formulario </title></head><body><form action="acao.php" method="post"><input type="hidden" name="pre_code_sec" value="<?php echo $num; ?>">Nome: <input type="text" name="nome"><br><br>Redigite o codigo: <img src="codigo.php?num=<?php echo $num; ?>" border="1"> <input type="text" name="codigo"><button type="submit">Enviar</button></form></body></html>
acao.php

PHP [/tr][tr]$pre_code = $_POST[pre_code_sec];

$code = $_POST[codigo];

//agora vamos repetir a alteracao no valor

 

for($i = 5; $i >= 0; $i--)

{

$num .= $pre_code[$i];

}

 

//vamos verificar se o numero digitado foi correto

 

if($num != $code) die("codigo incorreto");

[/tr]

 

eh isso kra, espero que voce tenha entendido a base, a livraria GD pode ser baixada no site: http://www.boutell.com/gd/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.