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
147
5
18
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
147
5
18
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
147
5
18
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
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 0
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 11
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select 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 1
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

Discussioni simili