Come far fare redirect al form mail in php

  • Creatore Discussione Creatore Discussione ghisirds
  • Data di inizio Data di inizio

ghisirds

Utente Attivo
4 Mag 2007
227
0
16
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 = "[email protected]";
$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
 
PHP:
<?php
$nome_mittente = $_POST['nome_mittente'];
$mail_mittente = $_POST['mail_mittente'];
$mail_destinatario = "[email protected]";
$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))){
 /*i dati non sono corretti...*/
 header("Refresh: 5; URL=javascript:history.back();");
 echo "Inserisci i dati corretti!<br>";
 echo "Torni indietro tra 5 secondi.";
}
else { 
 /*se i dati sono ok allora procedo con l'invio della mail...*/
 if(mail($mail_destinatario, "Richiesta informazioni  da $nome_mittente", $messaggio, "From:<$mail_mittente>\n")){
   header("Refresh: 5; URL=http://www.google.com/");
   echo "Mail inviata con successo, le risponderemo nel più breve tempo possibile.<br>";
   echo "Sei in home tra 5 secondi.";
   }
 else {
   header("Refresh: 5; URL=javascript:history.back();");
   echo "Si è verificato un errore durante l'invio.<br>";
   echo "Torni indietro tra 5 secondi.";
   }
}

?>

Ho riscritto il codice in questo modo. Non l'ho testato perchè ho il server down. Spero che ti funzioni.

Ciao :fonzie:
 
Ultima modifica:
io utilizzo un semplice echo e funziona

PHP:
 echo "<meta http-equiv='Refresh' content='3; URL=form_01.htm'>"; // ... ritorna a form
 

Discussioni simili