Salve, proprio ieri leggendo un post sul forum mi è venuto in mente di creare un redirect sul mio sito web dopo l'invio dell'email, provo a spiegare:
- La form viene compilata
- Quando l'utente clicca invia la form spedisce la mail e tramite la funzione HEADER rimanda alla pagina confermamessaggio.php dove c'è scritto:
"Messaggio spedito, sarai reindirizzato alla pagina di proveniente entro 5 secondi, se non vieni reindirizzato clicca Qui."
Qui mi sorge il problema, io vorrei che questa pagina venga mostrata per l'appunto per 5 secondi e poi venisse fatto un refresh rimandando il browser alla pagina ?pagina=contatti.
Premetto che ho fatto alcune prove ma con insuccesso e non riesco a capire dove sbaglio:
Ho provato con Header in PHP:
Con Header funzionare funziona, il problema è che (per supposizione) il server esegue solo Header perchè nel momento in qui passano i 5 secondi la pagina mostrata è vuota, invece vorrei che prima mi venisse mostrato quello che ho messo nell'echo e poi dopo 5 secondi venissi reindirizzato sulla pagina contatti di nuovo.
Ho provato anche con il tag META che però ho visto che molti lo considerano il redirect dei poveri (il perchè non lo so):
Che con questo non ho capito il perchè, ma proprio non va neanche a pedate.
Se dovesse servire posto anche il codice del codice PHP che prende la mail, la invia e fa il redirect sulla pagina confermamessaggio.php:
PS. Se volete provare mandate pure delle mail di prova per vedere cosa ho combinato finora, tanto ieri a forza di provare me ne sono mandate una 30ina nel giro di 5 minuti XD
Grazie in anticipo.
- La form viene compilata
- Quando l'utente clicca invia la form spedisce la mail e tramite la funzione HEADER rimanda alla pagina confermamessaggio.php dove c'è scritto:
"Messaggio spedito, sarai reindirizzato alla pagina di proveniente entro 5 secondi, se non vieni reindirizzato clicca Qui."
Qui mi sorge il problema, io vorrei che questa pagina venga mostrata per l'appunto per 5 secondi e poi venisse fatto un refresh rimandando il browser alla pagina ?pagina=contatti.
Premetto che ho fatto alcune prove ma con insuccesso e non riesco a capire dove sbaglio:
Ho provato con Header in PHP:
PHP:
<?php
echo "<h1>/Contatti</h1>
<div class='boxcelestenote' style='text-align: center; margin-top: 80px;'>
<b>Risposta:</b>
Messaggio inviato! tra 5 secondi sarai reindirizzato alla pagina di provenienza. Se non vieni reindirizzato clicca
<a href='http://www.johnnyferrari.it/?pagina=contatti'>Qui</a>
</div>";
?>
<?php
header("Refresh: 5; url=www.johnnyferrari.it/?pagina=contatti");
?>
Ho provato anche con il tag META che però ho visto che molti lo considerano il redirect dei poveri (il perchè non lo so):
PHP:
<?php
if (isset($_GET['pagina']))
{
switch($_GET['pagina'])
{
case "progetti":
case "galleria":
case "tron_legacy_template":
case "viola_e_arancio":
case "concept_boxes_tron_legacy_style":
echo ' <link rel="stylesheet" href="css/lightbox.css?ver=1" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
';break;
case "profilo":
case "servizi":
case "contatti":
case "infosito":
echo ' <link rel="stylesheet" href="css/elenchi.css?ver=1" />
';break;
case "messent":
echo ' <meta http-equiv="refresh" content="5; url=http://www.johnnyferrari.it/?pagina=contatti">
';break;
}
}
else{echo('');}
?>
Se dovesse servire posto anche il codice del codice PHP che prende la mail, la invia e fa il redirect sulla pagina confermamessaggio.php:
PHP:
<?php
//Destinatario form mail.
$mailto = "*******@live.it";
//Oggetto della mail mostrato in posta elettronica.
$subject = "Mail da JohnnyFerrari.it";
//Pagina da aprire dopo l'invio della mail.
$redirect = "http://www.johnnyferrari.it/?pagina=messent";
foreach($_POST as $key => $value) {
$message .= $key . ': ' . $value;
$message .= "\n\n";
}
if (empty($_POST[nome]) OR empty($_POST[email]) OR empty($_POST[contenuto])) {
echo "<script>alert('Non hai compilato uno o più campi obbligatori. Completa tutti i campi e riprova.');</script>";
exit();
} else {
@mail($mailto, $subject, $message);
header("location: $redirect");
}
?>
PS. Se volete provare mandate pure delle mail di prova per vedere cosa ho combinato finora, tanto ieri a forza di provare me ne sono mandate una 30ina nel giro di 5 minuti XD
Grazie in anticipo.