perche' invii un output al browser prima dell'header.
![]()
perche' invii un output al browser prima dell'header.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Al momento ho questa cosa, il messaggio di errore non mi compare più ma non compare nemmeno più l'immagine. Qualcuno può dirmi come ha risolto?
Ciao e grazie!codice:<?php error_reporting(E_ALL); require_once('captcha.class.php'); session_start(); ?> <html> <head></head> <body> <?php $captcha=new captcha(); $act=isset($_GET['act']) ? $_GET['act'] : ''; switch($act): case('img'): $captcha->offuscamento=3; $captcha->genera($_GET['stringa']); break; case('check'): if($_SESSION['stringa'] == $_POST['codice']){ echo 'nome: '.$_POST['nome']; echo ' '; echo 'cognome: '.$_POST['cognome']; } else echo 'Il codice non corrisponde all\'immagine'; break; default: $stringa=$captcha->stringa_casuale(); $_SESSION['stringa']=$stringa; echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'?act=check"> <ul style="list-style: none;"> [*]nome: <input type="text" name="nome" /> [*]cognome: <input type="text" name="cognome" /> [*]codice: [img]'.$_SERVER['PHP_SELF'].'?act=img&stringa='.$stringa.'[/img] [*]inserisci il codice: <input type="text" name="codice" /> [*]<input type="submit" name="invia" value="invia" /> [/list] </form>'; break; endswitch; ?> </body> </html>
Luigi
togli il codice html e correggi l'errore del parser... cioe' metti il carattere di escape a:
echo 'Il codice non corrisponde all\'immagine';
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Il carattere di escape c'era già ma nel forum è stato sostituito.
Ho tolto il codice html e sono ritornato alla pagina originale che funziona. Ti posto il codice
ma questo funzionava già prima! E allora come faccio ad integrare questo nelle mia pagina che ha tanto di body etc?Codice PHP:
<?php
error_reporting(E_ALL);
require_once('captcha.class.php');
session_start();
$captcha=new captcha();
$act=isset($_GET['act']) ? $_GET['act'] : '';
switch($act):
case('img'):
$captcha->offuscamento=3;
$captcha->genera($_GET['stringa']);
break;
case('check'):
if($_SESSION['stringa'] == $_POST['codice']){
echo 'nome: '.$_POST['nome'];
echo '
';
echo 'cognome: '.$_POST['cognome'];
} else
echo 'Il codice non corrisponde all\'immagine';
break;
default:
$stringa=$captcha->stringa_casuale();
$_SESSION['stringa']=$stringa;
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'?act=check">
<ul style="list-style: none;">
[*]nome: <input type="text" name="nome" />
[*]cognome: <input type="text" name="cognome" />
[*]codice: [img]'.$_SERVER['PHP_SELF'].'?act=img&stringa='.$stringa.'[/img]
[*]inserisci il codice: <input type="text" name="codice" />
[*]<input type="submit" name="invia" value="invia" />
[/list]
</form>';
break;
endswitch;
?>
Ciao e grazie mille per la pazienza!
Luigi
il codice html puo' iniziare con il FORM ... hai solo quello da mettere lato client, il resto lo macina il server.
Le varie segnalazioni le raccogli dentro delle variabile che manderai poi in stampa con le righe inviate al browser. In sostanza, quello che devi mettere in html lo puoi vedere leggendo il codice che arriva al browser.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
grazie mille per il suggerimento!
Ci sono riuscito, facico qualche prova per migliorare un pò le cose.
Ciao e ancora grazie.
Luigi
Qualcuno mi può aiutare ?
Ho nella cartella i tre file
prova
class
e il font arial
Apache 2.2.4
PHP 5.2.3
ma al posto del codice mi esce solo la crocetta rossa non so più che fare consigli?...
grazie mille
Originariamente inviato da Markyno
Qualcuno mi può aiutare ?
Ho nella cartella i tre file
prova
class
e il font arial
Apache 2.2.4
PHP 5.2.3
ma al posto del codice mi esce solo la crocetta rossa non so più che fare consigli?...
grazie milleQuesto mettilo nel form:Codice PHP:
<?php
//Captca-image
session_start();
if (empty($_SESSION['rand_code'])){
$str = "";
$length = 0;
$caratteri = "abcdefghijkmnpqrstuvwxyz123456789";//Caratteri che appaiono come immagine
for ($i = 0; $i < 5; $i++){
$str .= $caratteri{rand(0,34)};
}
$_SESSION['rand_code'] = $str;
}
$imgX = 60;//Sposta a dx i caratteri-immagine
$imgY = 20;//Sposta in alto i caratteri-immagine
$image = imagecreatetruecolor(60, 20);
$backgr_col = imagecolorallocate($image, 238,239,239);//Colore di sfondo
$border_col = imagecolorallocate($image, 208,208,20);//Colore del bordo
$text_col = imagecolorallocate($image, 46,60,31);//Colore dei caratteri-immagine
imagefilledrectangle($image, 0, 0, 60, 20, $backgr_col);//Cambiando i 4 valori appare un'ombra nera e si può creare un'effetto rilievo o incassato del rettangolo
imagerectangle($image, 0, 0, 59, 19, $border_col);// Sposta il bordino colorato del rettangolo
$font = "arial.ttf";
$font_size = 12;//Dimensione dei caratteri-immagine
$angle = 0;//Ruota obliqui i caratteri-immagine
$box = imagettfbbox($font_size,$angle,$font,$_SESSION['rand_code']);
$x = (int)($imgX - $box[4]) / 2;//Sposta a sx i caratteri-immagine
$y = (int)($imgY - $box[5]) / 2;//Sposta in alto i caratteri-immagine
imagettftext($image,$font_size,$angle,$x,$y,$text_col,$font,$_SESSION['rand_code']);
header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy ($image);
//Fine Captca-image
?>
Questo mettilo nel file che riceve ed elabora i dati del form:codice:[img]captca-image.php[/img] <input type="text" name="validator" id="validator" size="5" /> <font size="2" color="red" face="arial">Scrivi il codice</font>
Codice PHP:
//Controlla che il codice Captca inserito corrisponda a quello che appare sopra
if ($_SESSION['rand_code'] != $_POST['validator'])
$errore .= "
<tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\">Codice errato!</font></center>
";
if ($errore)
echo $errore;
if ($errore):
$tab_ins;
$meta="<META http-equiv=\"REFRESH\" content=\"2; url=http://www.tuosito/form.php\">";
Ma non ci posso credere mi esce comunque la crocetta e non mi visualizza l,'immagine come mai?
A me serve per proteggermi dallo spam mi stanno invadendo ...
Tu Braco riusciresti a farmi un esempio di mail tipo
Nome
Testo
e tasto di invio poi mi applico e me lo implemento come mi serve Grazie
Ma l'unica cosa che non c'è verso di visualizzare l'immagine ...![]()
Il codice che ti ho dato lo uso qui http://www.photoman.altervista.org/guestbook/form.php (lo sto ancora sistemando), il codice captca l'ho messo in un file esterno captca-image.phpOriginariamente inviato da Markyno
Ma non ci posso credere mi esce comunque la crocetta e non mi visualizza l,'immagine come mai?
A me serve per proteggermi dallo spam mi stanno invadendo ...
Tu Braco riusciresti a farmi un esempio di mail tipo
Nome
Testo
e tasto di invio poi mi applico e me lo implemento come mi serve Grazie
Ma l'unica cosa che non c'è verso di visualizzare l'immagine ...![]()