← Tutoriais

[PHP] Como gerar codigo de verificação

Lida 74200 vezes

Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Vou mostrar um codigo PHP  que serve para criar codigo de verificação:

Código: [Seleccione]

<?
$num = "1,4,7,9,3,6,0,8,9,7,5,3,1,8,6,4,2";
$explode = explode(",",$num);
$mostrar = strlen($explode)-1; $codigo = '';
for($C = 0;$C < 6; $C++) {
$codigo .= $explode{mt_rand(0, $mostrar)};
} print('<table bgcolor="black" border=0 cellpading="4" cellspacing="1" height="9"><tr><td bgcolor=#3399CC><font color="black" size="4" face=times><b><center>'.$codigo.'</center></b></font></td></tr></table>');
?>


Espero que isso ajude!!
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Utilizo um outro método para isso:

Código: [Seleccione]
<?php
function createRandomPassword&#40;&#41; &#123;

    
$valores "abcdefghijkmnopqrstuvwxyz023456789";
    
srand&#40;&#40;double&#41;microtime&#40;&#41;*1000000&#41;;
    
$i 0;
    
$pass '' ;

    while &
#40;$i <= 7&#41; &#123;
        
$num rand&#40;&#41; % 33;
        
$tmp substr&#40;$valores, $num, 1&#41;;
        
$pass $pass $tmp;
        
$i++;
    &
#125;

    
return $pass;
&
#125;

$password createRandomPassword&#40;&#41;;
echo "O código de verificação é&#58; $password";
?>


O resultado é identico, mas assim obtenho letras e números.
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Eu também tinha feito um codigo que serve para fazer Senhas, mas não coloquei aqui.
Gostei do teu também está muito bom.
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Eu preferi utilizar o método do Mota77, com GD.

Código: [Seleccione]
<?php
$codigodeimagem 
rand&#40;10000,99999&#41;;
setcookie&#40;"cod","$codigodeimagem"&#41;;

if &#40;!extension_loaded&#40;'gd'&#41;&#41; &#123; dl&#40;'php_gd2.dll'&#41;; &#125;
$im imagecreate&#40;48,19&#41;;
imagecolorallocate&#40;$im, 246, 246, 246&#41;;
$cor_texto imagecolorallocate&#40;$im, 68, 68, 68&#41;;
imagestring&#40;$im, 15, 2, 2, "$codigodeimagem", $cor_texto&#41;;


$gmtData gmdate&#40;"D, d M Y H&#58;i&#58;s"&#41;;
header&#40;"Expires&#58; &#123;$gmtData&#125; GMT"&#41;;
header&#40;"Last-Modified&#58; &#123;$gmtData&#125; GMT"&#41;;
header&#40;"Cache-Control&#58; no-cache, must-revalidate"&#41;;
header&#40;"Pragma&#58; no-cache"&#41;;
header&#40;"Content-type&#58; image/png"&#41;;
imagepng&#40;$im&#41;;
imagedestroy&#40;$im&#41;;

exit&#40;&#41;;
?>


Para chamar isto basta utilizar:

Código: [Seleccione]
<img src="validacao.php" border="0">

Caso se grave com outro nome, basta alterar o nome do ficheiro em src.

Depois para uma comparação temos o input que é à escolha da pessoa eu criei da seguinte forma (o nosso input vai ter a variavel "codvalidacao"):

Código: [Seleccione]
<input name="codvalidacao" type="text" id="codvalidacao" size="4" maxlength="5">

..atenção que temos o maxlength em 5 porque a imagem gera 5 números.

Depois para uma comparação utiliza-se o cookie criado na imagem e a variável "codvalidacao" do input, ficando por exemplo:

Código: [Seleccione]
if ($_POST['codvalidacao'] != $_COOKIE['cod']) { echo "O código de validação está errado"; }
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Encontrei um codigo igualzinho a unica diferença é que o codigo ai de cima as variaveis estão traduzidas e utilizaram cookies.

http://www.php-mysql-tutorial.com/examples/source/user-authentication/image-verification/randomImage.phps
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Has-de me dizer onde é que está igualzinho, tanto não tem as mesmas variáveis, como não tem os mesmos valores e nestas imagens de GD se tu soubesses, faz-se tudo praticamente igual ;)

Cuida-te rapazinho ;)
Offline

Bruno Mota 
Membro
Mensagens 1733 Gostos 3
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

OFFICER, ele deve tar a anhar quando souberes usar as GD's vem falar cmg o com e parcido mas eu posso codar um parcido sem conhecer esse ao nao axas??? eu nao sabia desse se nao nem seker o tinha feito
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Bem trocar variaveis e valores é o mais facil  :wink:
Se codaste melhor pra ti, eu simplesmente disse que encontrei um codigo  :wink:

Relaxa!! Cumps  8)
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

kingless, porque gostas de ser lammer? Não percebo  :shock:

Mas enfim..deixa lá, não és o único..nem tudo está perdido, nesta MERD@ de comunidade Portuguesa existem muitos mais como tu..  :roll:
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Ser lammer é bom  :lol:  Ficas famoso loools  Eu aprendi a ser lammer com uns brasileiros  :roll:

http://zone-h.org/en/hallofshame/special

Todos nomes que estão ai são os Top 50 lammers.   :roll:

Maior ataque da historia!!
Um Hacker turco conhecido pelo nome "Iskorpitx" invadiu com sucesso, nesta quarta-feira, 21.549 sites de uma só vez. Este foi o mais numeroso ataque de hacker conhecido até hoje, segundo o site Zone-H.org

Isto sim é ser lammer  :lol:
Offline

iso600 
Membro
Mensagens 230 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

lammer? isso é se defacer!!

lammer esta abaixo de defacer sequer  :roll:
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

LOL, Os lammers também fazem deface  8)

Eu sou lammer e ja fiz deface  :lol:
Offline

iso600 
Membro
Mensagens 230 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

lammer dentro do deface sao os que nao descobrem falhas, nem codam scripts... os defacers que fazem algo com a sua autoria, nao axo que sejam lammers... algo que duvido em ti! :)

e tu nao és lammer.. mas script k.
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

nops, conheço defacers brasileiros eles não sabem codar.
Visita esta rede no IRC "irc.fullnetwork.org"

Vais entender o que eu falo  :wink:
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Nao vao para offtopic..
O codigo esta interesante kingless