Problema captcha ?

Manu93

Nuovo Utente
14 Set 2015
27
0
0
Buongiorno a tutti, sto provando ad inserire un sistema captcha nel mio form, ho trovato parecchie guide su google (ovviamente), l'unico problema è che qualsiasi codice io scriva mi da il seguente errore "l'immagine non può essere visualizzata perchè contiene errori". Come risolvo? Ecco il codice:

PHP:
<?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);
?>
 
Ultima modifica di un moderatore:

Manu93

Nuovo Utente
14 Set 2015
27
0
0
Scusa, potresti spiegarmi come inserire questo captcha per favore? Non sono molto pratico con la libreria GD.
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
Allora guarda ti allego lo script che uso io

Crea un file che chiami code.php
PHP:
<?php
session_start();
//Creo un testo random di 5 caratteri
$testo = md5(microtime());
$testo = substr($testo, 0, 5);

//Utilizzo un immagine di sfondo PNG (la trovi allegata)
$img = imagecreatefrompng("code.png");

// Colore testo. Questa funzione è ottima nel caso tu sia molto attento alla parte grafica del sito. E' in formato RGB
$color = imagecolorallocate($img, 0, 0, 0);

// Unisco immagine e testo
imagestring($img, 100, 35, 15, $testo, $color);

// Mi salvo il codice in una variabile di sessione
$_SESSION['COD'] = $testo;

//Visualizzo l'immagine
header("Content-type: image/png");
imagejpeg($img);
?>

questo è il png che puoi utilizzare deve stare nella stessa cartella del file code.php e deve chiamarsi code.png se cambi nome ricordarlo di cambiarlo anche sul codice
code.png

nel form inserisci
HTML:
<img src="code.php" alt="Codice Captcha"/>
<input name="cod" type="text" id="cod" size="5" maxlength="5"/>

nel controllo farai

PHP:
if ($_SESSION['COD']==$_POST['cod'])
{ 
OK
}
else
{
CAPTCHA SBAGLIATO
}
 

Manu93

Nuovo Utente
14 Set 2015
27
0
0
Ho fatto ciò che hai detto, quindi ho creato un file chiamato code.php dove ho inserito il primo script, poi in un altro file chiamato "esempio.php" ho inserito : <img src="code.php" alt="Codice Captcha"/>
<input name="cod" type="text" id="cod" size="5" maxlength="5"/>
solo che non mi mostra l'immagine, ma semplicemente la scritta "Codice Captcha" (data dall'attributo 'alt'). Se provo invece ad aprire il file code.php mi da sempre il solito errore, ergo "l'immagine non può essere visualizzata perchè contiene errori".
 

Manu93

Nuovo Utente
14 Set 2015
27
0
0
Potresti dirmi come devo utilizzare questo script? O meglio ancora dove sbaglio?
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
code.png

Questa è l'immagine da mettere nella stessa cartella del file code.php
 

Manu93

Nuovo Utente
14 Set 2015
27
0
0
Vedi l'allegato 2818

Questa è l'immagine da mettere nella stessa cartella del file code.php

Scusa ma non capisco a cosa ti riferisci. Allora io ho una cartella contenente 3 file: code.php, form.html (con i rispettivi codici che mi hai fornito tu) e l'immagine code.png. Tutti e 3 nella stessa cartella, però se apro form.html, non mi visualizza l'immagine ma solo l'input type text. Se apro code.php mi dice "l'immagine non può essere visualizzata perchè contiene errori". Dove sbaglio?
 
Ultima modifica:

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
credo il problema sia con la libreria, hai controllato che sia attiva?

PHP:
phpinfo();

gd.JPG
 

Manu93

Nuovo Utente
14 Set 2015
27
0
0
credo il problema sia con la libreria, hai controllato che sia attiva?

PHP:
phpinfo();

Vedi l'allegato 2820

Si è attiva. Mi da questi valori.

GD Support enabled
GD Version 2.1.1-dev
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.5.2
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 8
PNG Support enabled
libPNG Version 1.2.51
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
WebP Support enabled
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Problema captcha su pagina php PHP 2
H Problema validazione CAPTCHA PHP 20
asevenx problema con codice di sicurezza captcha PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 0
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 5
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 2
R Problema connessione db PHP 7
M problema if PHP 2
G Problema con Get page PHP 4
N Problema passaggio variabili tra pagine PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
H problema carrello woocommerce PHP 2
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
M Problema su query JOIN in tre tabelle PHP 0
S Problema esportazione tabelle Mysql in Excel PHP 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
M Problema su update di 3 tabelle PHP 1
T problema con select dinamica con jquery Javascript 0
A Problema checkout carrello php PHP 2
R Problema al server Domini 0
A Problema nel passare la variabile PHP 0
G Problema update di un database PHP 0
S Problema con spazi bianchi HTML e CSS 4
E Problema motore di ricerca FULL_TEXT PHP 0
Tommy03 Problema durata cookie PHP 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
I PROBLEMA CODICE INSERTION SORT C C/C++ 2
I PROBLEMA CODICE C - INSERTION SORT Presentati al Forum 1
N Problema pennelli Photoshop Photoshop 0

Discussioni simili