captcha

  • Creatore Discussione Creatore Discussione ispanic
  • Data di inizio Data di inizio

ispanic

Utente Attivo
28 Ago 2014
119
0
0
ciao ragazzi, mi potreste dire cosa ho sbagliato?
PHP:
<?php

session_start ();
$crypt = sha1(microtime () * mktime ());
$str = substr ($crypt,0,4);

$img = imagecreatefrompng ("immagine.png");

$color = imagecolorallocate ($img, 0, 0, 0);
$linea = imagecolorallocate ($img, 239, 239, 239);
imageline ($img,0,0,49,39,$linea);
imageline ($img,40,0,64,29,$linea);
imagestring ($img, 5, 20, 10, $str, $color);

$_SESSION['control'] = sha1($str);

header ("Content-type: image/png");
imagepng($img);

?>

Quando vado ad aprire la pagina mi dice che ci sonod degli errori nella generazione del captcha
 
Probabilmente ci sono degli errori che inquinano l'output finale.
Prova a commentare le ultime due righe:
PHP:
#header ("Content-type: image/png"); 
#imagepng($img);

Avvia nuovamente il file e vedi se php ti segnala qualche errore di suo.
 
ho provato lo script,
l'unica segnalazione è sostituire mktime() con time()
con la modifica lo script presentato, funziona bene.

ho poi inserito un "echo" per vedere il contenuto di "$str" e confrontarlo con quanto visualizzato sopra l'immagine
in questo caso, non scrive nulla e compare il simbolo di immagine mancante

ho allora commentato "header" con il risultato che vedo il valore di "$str" ma l'immagine viene scritta come testo
per capirci, "‰PNG IHDROU?¥ IDATxœí￾PSwÞïߧëV©ÓÊ*E‹´h R]Ò\›.........."

forse mettere l' immagine in un iframe, cioè isolando l'immagine rispetto alla pagina ?
ciao
Marino
 
Ciao ragazzi, ho provato a cambiare il mktime (), con il time () ma mi esce sempre lo stesso errore quando vado ad aprire la pagina (captcha.php) questo errore:
Schermata 2014-10-03 alle 16.55.55.jpg
 
scusa, per ora un workaround,

PHP:
// header ("Content-type: image/png");

imagepng($img, "temp.png");		// genera il file con l'immagine

echo "<img src='temp.png' />";		// lo pubblica

ciao
Marino
 
Grazie mille per l'aiuto Marino, facendo così, questa volta non mi si apre lo stesso ma mi da solamente il logo piccolo dell'immagine, come se fosse danneggiata
 
Grazie mille per l'aiuto Marino, facendo così, questa volta non mi si apre lo stesso ma mi da solamente il logo piccolo dell'immagine, come se fosse danneggiata

ho riprodotto il problema cambiando il nome di scrittura del file, e lasciando inalterato "echo"
ottengo anch'io il logo piccolo dell'immagine.

controlla che il file venga scritto (permessi di scrittura),
venga scritto con il nome che hai impostato,
venga letto con il nome di scrittura
ciao
Marino
 
Ciao marino, grazie mille per l'aiuto!! Ho risolto così:

$img = imagecreatefrompng ("immagine.png"); --> Errata!
$img = imagecreate (x , y); ---> Giusta!
 

Discussioni simili