Scuola forum (scuo.la) - Forum di discussione per le scuole

Scuola forum (scuo.la) - Forum di discussione per le scuole (https://www.scuolaforum.org/)
-   Informatica (https://www.scuolaforum.org/informatica/)
-   -   Come modificare il form mail in php per fare redirect (https://www.scuolaforum.org/informatica/666-come-modificare-il-form-mail-php-per-fare-redirect.html)

Vittorio 05-01-2008 06:32 PM

Come modificare il form mail in php per fare redirect
 
Ciao a tutti.
Ho un sito con una form mail in php usata per i contatti che ogni volta che si spedisce un messaggio, rilascia un messaggio di conferma. Io vorrei che oltre al messaggio, facesse un redirect verso la home page dopo 5 secondi, e nel caso vi fossero errori, facesse un indietro del browser dopo 5 secondi in modo da permettere di fare delle correzioni nel form compilato, ovviamente dopo il messaggio di errore.
Il codice php è questo:

codice:

<?php
$nome_mittente = $_POST['nome_mittente'];
$mail_mittente = $_POST['mail_mittente'];
$mail_destinatario = "info@xxx.it";
$messaggio = $_POST['messaggio'];
if ($nome_mittente=="")
echo "Devi inserire il tuo nome.";
elseif(!ereg("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})",$mail_mittente))
echo "Devi inserire un formato di e-mail valido per il mittente.";
else if ($messaggio=="")
echo "Hai dimenticato il messaggio.";
else
if(mail($mail_destinatario, "Richiesta informazioni  da $nome_mittente", $messaggio, "From:<$mail_mittente>\n"))
echo "Mail inviata con successo, le risponderemo nel più breve tempo possibile.";
else
echo "Si è verificato un errore durante l'invio.";
?>

Ho provato ad inserire dopo"Mail inviata con successo ecc." la frase "header("Refresh: 5; URL=http://xxx.com/");" ma mi da un errore "Parse error: syntax error, unexpected T_ELSE" e allora mi sono fermato, dal momento che di php so quasi nulla.
Qualcuno mi può aiutare a fare queste due modifiche al codice?
Grazie

Quasimodo 05-02-2008 03:30 PM

Fai così:

codice:

<?php

$nome_mittente = $_POST['nome_mittente'];
$mail_mittente = $_POST['mail_mittente'];

$mail_destinatario = "info@sito.it";
$messaggio = $_POST['messaggio'];

if (($nome_mittente == "") || ($messaggio == "") || (!ereg("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})",$mail_mittente))){

 header("Refresh: 5; URL=javascript:history.back();");
 echo "Dati non corretti!<br>";
 echo "Tra 5 secondi sarai riportato al modulo dei contatti.";
}
else {

 if(mail($mail_destinatario, "Richiesta informazioni su sito.net da $nome_mittente", $messaggio, "From:<$mail_mittente>\n")){
  header("Refresh: 5; URL=http://www.sito.net/");

 echo "Mail inviata con successo, ti risponderemo nel più breve tempo possibile.<br>";
  echo "Tra 5 secondi sarai reindirizzato al sito.";
  }

 else {
  header("Refresh: 5; URL=javascript:history.back();");
  echo "Si è verificato un errore durante l'invio.<br>";
  echo "Tra 5 secondi sarai riportato al modulo dei contatti.";
  }
}

?>


Vittorio 05-05-2008 01:02 AM

Si, funziona benissimo.
Grazie mille:ciaociao:

elvis86 09-14-2010 10:56 AM

Salve ragazzi, sarei interessato a questo form mail per un mio sito, è possibile averlo??

Grazie in anticipo

marco 09-14-2010 02:43 PM

Scusa, ma non è tutto li? Basta che fai copia/incolla, no? Ho capito male?

elvis86 09-14-2010 02:48 PM

non sono molto pratico di php e pensavo che i file che servivano erano due: questo era il file in php e poi credevo ci fosse anche il form da inserire nell'html (e nel caso servisse anche quest'ultimo, avevo problemi nel compilarlo).

Quindi basta inserire questo nella mia pagina e salvarla in php?
Grazie

marco 09-15-2010 11:27 AM

No, infatti serve anche la parte da inserire nell'html, magari in un div. Il codice è qualcosa tipo questo:
codice HTML:

<form name="tell" id="tell" method="post" action="cg_form_to_mail.php">
 <table width="80%" border="0" cellpadding="10" cellspacing="0">
 
<tr>
 <td height="30"><div align="left">
 <h3><span class="nomi_form">Nombre:</span></h3>
 </div></td>
 <td height="30"><div align="left"><input name="nome_mittente" type="text" class="form" size="31" />
 </div></td>
 </tr>

 <tr>
 <td height="30"><div align="left">
 <h3><span class="nomi_form">Email:</span></h3>
 </div></td>
 <td height="30"><div align="left"><input name="mail_mittente" type="text" class="form" size="31" />
 </div></td>
 </tr>

 <tr>
 <td height="30" valign="top"><div align="left">
 <h3><span class="nomi_form">Mensaje:</span></h3>
 </div></td>
 <td valign="middle"><div align="left"><textarea name="messaggio" cols="31" rows="11" class="mex"></textarea>
 </div></td>
 </tr>
 
<tr valign="middle">
 <td height="30"><div align="left"></div></td>
 <td height="30"><div align="left"><input type="submit" name="Submit" value="Enviar" class="invia" />
 </div></td>
 </tr>

 </table>
 </form>

Poi con il css puoi cambiare alcune proprietà del testo, spaziature ecc.
Ciao
Marco


Tutti gli orari sono GMT +2. Attualmente sono le 02:57 AM.