Come far fare redirect al form mail in php

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:

<?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

__________________

Non hai mai visto regali aziendali così! (wedding ideas in inglese), forum sulla cultura, Creazione siti web

inviato 8 anni fa
Pammachio
X 0 X

Prova così:

if(mail($mail_destinatario, "Richiesta informazioni  da $nome_mittente", $messaggio, "From:<$mail_mittente>\n")) {
   header("Refresh: 5; URL=http://xxx.com/");   
   echo "Mail inviata con successo, le risponderemo nel più breve tempo possibile.";
}
else 
   echo "Si è verificato un errore durante l'invio.";
risposto 8 anni fa
Gianni Tomasicchio
X 0 X

eh no:

Parse error: syntax error, unexpected T_ELSE in /home/xxx/domains/xxx.com/public_html/cg_form_to_mail.php on line 44

 :(

risposto 8 anni fa
Pammachio
X 0 X

riporta l'intero script modificato

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

non è necessario, già risolto così:

<?php

$nome_mittente = $_POST['nome_mittente'];

$mail_mittente = $_POST['mail_mittente'];

$mail_destinatario = "info@xxx.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 xxx.net da $nome_mittente", $messaggio, "From:<$mail_mittente>\n")){

   header("Refresh: 5; URL=http://www.xxx.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.";

   }

}

grazie

ciao

risposto 8 anni fa
Pammachio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda