@alemoppo, ti sono debitore, funziona perfettamente :D Grazie mille
Per quanto riguarda i tag, sò ke sono obsoleti, ma usare i css x un semplice msg di avviso mi sembra inutile, cmq vedrò quello che riesco a combinare ;)
Cmq per aiutare chi si approccia al form mail e al captcha in generale, posto l'intero codice funzionante, così è più chiaro:
Form in html:
Codice:
<form name="form1" id="form1" method="post" action="mail.php">
<form name="modulo" method="post" action="mail.php">
<div>La tua email <br />
<input type="text" name="email" size="30"></div>
<div>Oggetto <br />
<input type="text" name="oggetto" size="30"></div>
<div>Messaggio <br />
<textarea name="testo" cols="40" rows="7"></textarea></div>
<div><img src="captcha.php" alt="Captcha"/>
<input name="codice" type="text" id="codice" size="5" maxlength="5"/></div>
<div><input type="submit" value="Invia email"> <input type="reset" value="Resetta campi"></div>
</form>
</form>
Php per la generazione del captcha:
Codice PHP:
<?php
session_start();
$random_txt = md5(microtime());
$random_txt = substr($random_txt, 0, 5);
$immagine = imagecreatefrompng("captcha.png");
$colore = imagecolorallocate($immagine, 0, 0, 0);
imagestring($immagine, 100, 35, 15, $random_txt, $colore);
$_SESSION['CODICE'] = $random_txt;
header("Content-type: image/jpeg");
imagejpeg($immagine);
?>
Php per l'invio della mail con relativi controlli dei campi:
Codice PHP:
<?php
session_start();
$ogg="$_POST[oggetto]";
$test="$_POST[testo]";
$em="$_POST[email]";
$dest="mailacuiinviare@gmail.com";
if ($em==""){
echo "Non hai inserito la tua email";
}elseif ($ogg=="") {
echo "Non hai specificato oggetto del messaggio";
}elseif ($test=="") {
echo "Non hai inserito il testo";
}elseif ($_POST['codice']=="") {
echo "Non hai inserito il captcha";
}elseif ($_SESSION['CODICE']!=$_POST['codice']) {
echo "Captcha errato!";
}else {
mail("$dest","$ogg","$test","From: $em");
echo "La tua email e' stata inviata con successo!";
}
?>
Grazie nuovamente