Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
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
Be, l'header per ovvi motivi lo devi spedire prima di qualsiasi altro carattere html, quindi, ipotizzando che lo scrip inizi nel punto da te riportato (ma dubito, ci sarà l'intestazione html...)
Comunque per un redirect "temporizzato" puoi usare il tag "<meta http-equiv="refresh"content="...,5"> mentre con l'header del php dubito, perchè cambia proprio il response header della pagina, che non è più 200 e segue il testo..
Ad ogni modo, segue un esempio (non collaudato, non ottimizzato ma il più chiaro possibile) da cui puoi prendere spunto
Codice sorgente - presumibilmente Php
<?php
$nome_mittente=$_POST['nome_mittente'];
$mail_mittente=$_POST['mail_mittente'];
$mail_destinatario="info@xxx.it";
$messaggio=$_POST['messaggio'];
$inviato=true;
// non si può scrivere direttamente
// l'errore in echo perchè se errore
// prima bisogna mandare un meta tag per il refresh