- Home
- Categorie
- Coding e Sistemistica
- PHP
- Elabora form
-
Elabora form
allora , nel mio sito ho il seguente form
[html]
<<form NAME="mioform" ACTION="elabora_form.php" METHOD="POST" onsubmit="Modulo()">
<center>
<table BORDER="0" CELLSPACING="0"
CELLPADDING="1">
<tr valign="top">
<td bgcolor="CCCCCC"> <font SIZE="1" face="Verdana">Titolo sito</font></td>
<td bgcolor="CCCCCC" align="right"><font SIZE="1" face="Verdana"><input NAME="nome" TYPE="Text" SIZE="30" MAXLENGTH="20"><br><script>displaylimit("document.mioform.nome",20)</script> </td>
</tr>
<tr valign="top">
<td bgcolor="CCCCCC"> <font SIZE="1" face="Verdana">Url:</font></td>
<td bgcolor="CCCCCC" align="right"><font SIZE="1" face="Verdana"><input NAME="url" TYPE="Text" SIZE="30" MAXLENGTH="50"><br><script>displaylimit("document.mioform.url",50)</script> </td>
</tr>
<tr valign="top">
<td bgcolor="CCCCCC"> <font SIZE="1" face="Verdana">Indirizzo mail:</font></td>
<td bgcolor="CCCCCC" align="right"><font SIZE="1" face="Verdana"><input NAME="indirizzo" TYPE="Text" SIZE="30"
MAXLENGTH="50"><br> </td>
</tr>
<tr valign="top">
<td bgcolor="CCCCCC"> <font SIZE="1" face="Verdana">Comunicazioni:<br> Varie e eventuali</font></td>
<td bgcolor="CCCCCC" align="right"><font SIZE="1" face="Verdana"><input NAME="note" TYPE="Text" SIZE="30"
MAXLENGTH="100"><br><script>displaylimit("document.mioform.note",100)</script> </td>
</tr>
</table>
</center>
<center>
<table BORDER="1" CELLSPACING="1" CELLPADDING="1">
<tr valign="top">
<td align=right><font SIZE="1" face="Verdana"><input NAME="submitbut" TYPE="submit" VALUE=" Invia "><input type="reset" value="Cancella"></td></tr>
<tr>
</table>
[/html]nell'elabora form, vorrei mettere un controllo dei campi per i primi tre (per l'email anche con il controllo di una mail valida) e ovviamente il buon fine se tutto è stato compilato. Ho trovato questo codice ```
[<?controllo campi compilati
if (( $nome == "" ) || ( $indirizzo == "" ) || ( $email == "" )) {
echo "<h3>Errore!</h3><br>Deve compilare tutti i campi dal form per continuare<br>
La preghiamo di <A HREF="javascript:history.go(-1)">tornare indietro e correggere</A>. Grazie";
exit;
}controllo campo email - email valida
if (!ereg("@",$email)){
echo "<h3>Errore!</h3><br>Deve inserire una email valida<br>
La preghiamo di <A HREF="javascript:history.go(-1)">tornare indietro e correggere</A>. Grazie";
exit;
} # inizio elaborazione dei dati
?>che mi lascia un dubbio, e se tutto è stato compilato, si passa direttamente a questo
<?php
$colore_sfondo="#82C0FF";
$colore_testo="#FFFF80";
$font="verdana";
$font_size=2;
$intestazioni = "MIME-Version: 1.0\r\n";
$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
//intestazioni per il mittente
$intestazioni .= "From: miosito[email protected]\r\n";
$messaggio="Questa email ti è stata inviata dal sito.<br> L'utente $_POST[nome] (a cui puoi rispondere a: $_POST[indirizzo], ti ha contattato per $_POST.<br>Ti ha scritto: $_POST[note]</font>";
$messaggio.="</body></html>";
mail("[EMAIL="[email protected]"]miamail[/EMAIL]", "Invio email da: $_POST[nome]", $messaggio,$intestazioni);
?>
-
ah, dimenticavo, come inserisco il messaggio che tutto è andato a buon fine e si può proseguire ?
thank you
-
-
Ciao supercapocc e benvenuto nel forum GT,
prova così:
[php]while(list($key,$value) = each($_POST))
{
$$key = $value;
}
$validaemail=ereg("^[^@]+@[^@]+[^@.]+$",$indirizzo);
if(!$validaemail OR empty($nome) OR empty($url)){
echo "<h3>Errore!</h3><br>Deve compilare tutti i campi del form ed inserire un indirizzo email valido per continuare<br>
La preghiamo di <A HREF="javascript:history.go(-1)">tornare indietro e correggere</A>. Grazie";
exit;}else{
$intestazioni = "MIME-Version: 1.0\r\n";
$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
//intestazioni per il mittente
$intestazioni .= "From: miosito[email protected]\r\n";
$messaggio="Questa email ti è stata inviata dal sito.<br> L'utente $nome (a cui puoi rispondere a: $indirizzo, ti ha contattato per $url.<br>Ti ha scritto: $note</font>";
$messaggio.="</body></html>";
$inviomail=mail("miamail", "Invio email da: $nome", $messaggio,$intestazioni);
if($inviomail){
echo "L ' invio del messaggio è andato a buon fine";
}else{
echo "Errore nell ' invio del messaggio";
}
}}
[/php]In caso di problemi scrivi qui,ciao!
-
ok, ora provo, eventualmente se volessi che i messaggi di errore comparissero nella stessa pagina del form,ognuno sotto il proprio campo errato quale sarebbe la procedura?
-
@supercapocc said:
ok, ora provo, eventualmente se volessi che i messaggi di errore comparissero nella stessa pagina del form,ognuno sotto il proprio campo errato quale sarebbe la procedura?
per quello ci vuole Ajax o javascript
-
ok, allora ho provato il codice, è mi da questo errore Parse error: syntax error, unexpected '}'
-
va beh....intuisco che c'era una parentesi di troppo.
ora non riconosce la variabile tutto ok. è sempre errato per lui.
-
@supercapocc said:
va beh....intuisco che c'era una parentesi di troppo.
ora non riconosce la variabile tutto ok. è sempre errato per lui.
Ciao.
Sì,c'era una parentesi di troppo
Non ho capito cosa intendi per "non riconosce la variabile tutto ok".
Potresti spiegarti meglio?
Grazie.
-
si certo, allora anche se metto tutti i dati e una mail giusta, mi da sempre errore tornare indietro.
-
Prova a sostituire: [php]^[^@]+@[^@]+[^@.]+$[/php] con [php]^[^@ ]+@[^@ ]+.[^@ .]+$[/php]
-
prova a sostituire:
^[^@]+@[^@]+[^@.]+$
con:
^[^@ ]+@[^@ ]+.[^@ .]+$
ciao!
-
ok grazie, ora funziona perfettamente
per migliorare la grafica dei messaggi ? tipo inserire immagini e altro. ci ho provato qui [PHP]echo "L' invio del messaggio è andato a buon fine[/PHP]
ma pare che gli diano fastidio le virgolette "
abbi pazienza ma è il mio primo approccio al php (linguaggio interessantissimo)
-
Per le virgolette,metti un \ davanti.
Esempio:<img src=\"immagine.gif\"> ``` ;) ciao!