Ciao a tutti,
che script mi consigliate per il captcha????
Nel manuale in php http://www.php.net/manual/en/ cosa devo cercare per trovare questa funzione???
Grazie
Stefano
Ciao a tutti,
che script mi consigliate per il captcha????
Nel manuale in php http://www.php.net/manual/en/ cosa devo cercare per trovare questa funzione???
Grazie
Stefano
un captcha potrebbe essere questo:
Codice PHP:
<?
session_start();
$x = 200;
$y = 75;
//creaiamo la stringa random e criptiamola
$crypt = sha1(microtime() * mktime());
//preleviamo una porzione della stringa
$str = substr($crypt,0,6);
$code = $str;
$space = $x / (strlen($code)+1);
$img = imagecreatetruecolor($x,$y);
$bg = imagecolorallocate($img,255,255,255);
$border = imagecolorallocate($img,0,0,0);
$colors[] = imagecolorallocate($img,128,64,192);
$colors[] = imagecolorallocate($img,192,64,128);
$colors[] = imagecolorallocate($img,108,192,64);
imagefilledrectangle($img,1,1,$x-2,$y-2,$bg);
imagerectangle($img,0,0,$x-1,$y-2,$border);
for ($i=0; $i< strlen ($code); $i++)
{
$color = $colors[$i % count($colors)];
imagettftext($img,28+rand(0,8),-20+rand(0,40),($i+0.3)*$space,50+rand(0,10),$color,'Vera.ttf',$code{$i});
}
for($i=0;$i<400;$i++)
{
$x1 = rand(3,$x-3);
$y1 = rand(3,$y-3);
$x2 = $x1-2-rand(0,8);
$y2 = $y1-2-rand(0,8);
imageline($img,$x1,$y1,$x2,$y2,$colors[rand(0,count($colors)-1)]);
}
$_SESSION['control'] = sha1($str);
header("Content-type: image/png");
imagepng($img);
?>
nella pagina di controllo
devi scrivere
if(sha1($_POST['codiceverifica']) != $_SESSION['control']){
die("Il codice di sicurezza non è corretto");
}
else{
codice di messaggio inviato o altro
}
nel form
[img]captcha.php[/img]
Inserisci il codice in figura:
<input type='text' name='codiceverifica' size="25">
captcha.php è il file dove sta il captcha
questo codice che ti ho postato è abbastanza semplice...comunque niente è invulnerabile però quando feci la stessa domanda mi hanno assicurato che un pò protegge
ah poi ti devi scraricare il file ttf del carattere...
io ho messo vera.ttf ma potresti benissimo mettere più di uno
grazie![]()
![]()
![]()
Girottolando ho trovato questo 3d...
solo che mi manca qualcosa...allora ricapitolando il tutto...
Questo è il mio file di prova
nel file "provacaptcha.php" ho ricopiato pari pari lo script relativo all'immagine e poi ho messo, sempre in radice, anche il file Vera.ttfcodice:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Prova</title> </head> <body> <?php if(!isset($_POST['pass']) || $_POST['pass'] == "") { ?> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> [img]provacaptcha.php[/img] Inserisci il codice in figura: <input type='text' name='codiceverifica' size="25"> <input name="frmSubmit" type="submit" value="Invia"> <input type="hidden" name="pass" value="1"> </form> <?php } elseif ($_POST['pass'] == 1) { if(sha1($_POST['codiceverifica']) != $_SESSION['control']) { die("Il codice di sicurezza non è corretto"); } else { echo ("ok"); } } ?> </body> </html>
Ma ci dev'essere qualcosa che mi sono perso perché mi dà il rettangolino vuoto con la x dove si legge solo l'alt...
amphioxus, Scalatore o chi per loro?
Grazie![]()
nessun volontario?![]()