Redirect Doppio (si può chiamare così?)

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
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:
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");
?>
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):
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('');}
?>
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:
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.
 

Fez Vrasta

Utente Attivo
11 Mag 2013
409
0
0
PHP:
echo "<script>setTimeout(function () {  window.location.href = \"/?pagina=contatti\"; }, 5000);</script>";
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
A me funziona, devi solo mettere un url corretto quindi anche con http:// oppure dato che fai un redirect al tuo stesso sito basta "?pagina=contatti" nel header

PHP:
echo "<script>setTimeout(function () {  window.location.href = \"/?pagina=contatti\"; }, 5000);</script>";
Non c'è bisogno di mettere mano al js, basta che aggiusta l'url
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
Risolto e spiego il perchè ed il come:

Il codice in effetti come dice Nefyt funzionare funziona! il problema era che siccome io uso quasi sempre e solo Firefox era un problema di Crossbrowsing (penso), questo perchè con Chrome, Internet Explorer ed Opera funziona, mentre Firefox non so il perchè non mi esegue l'header.

Il problema era quindi che non è che non funzionava il codice, ma non funzionava solo con Firefox, non lo avevo notato perchè uso sempre questo.

Ho risolto con la soluzione di FexVrasta che è Crossbrowser quindi.

Risolto, grazie a Nefyt ed a FezVrasta. :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Redirect 301 genera url statico con variabili Web Server 0
M Redirect a sottodominio Javascript 2
S Redirect 301 SEO Domini 2
L redirect url PHP 0
T Risolto Redirect a pagina esterna Javascript 2
M Risolto Effettuare un redirect tramite DNS (Era: DNS Redirect) Domini 1
Cosina htaccess redirect 301 senza estensione html Web Server 6
motleyrulez Chiamata Rest Api durante Redirect PHP 1
M [WordPress] Redirect 301 WordPress 2
felino htaccess: redirect da una subdirectory alla root Web Server 2
A [PHP] redirect htaccess PHP 5
D [Apache] Regola redirect e catena di path Apache 0
M [PHP] Modi per fare redirect 301 da http a https PHP 12
felino [Htaccess] Redirect per url non esistente Apache 1
M Condividere su FB con redirect Social Media Marketing 1
M Redirect sito php su server Windows PHP 0
F Catena di redirect 301 SEO e Posizionamento 1
G [HTML] Redirect di tutte le pagine di un sito ad una determinata pagina sempre dello stesso HTML e CSS 5
F htaccess e redirect 301 Apache 0
giosuecentomani redirect form a pagina html download ebook HTML e CSS 2
trattorino [PHP] [HTML] redirect iniezione su firefox PHP 5
T [WordPress] plugin redirect 301 WordPress 3
bubino8 [PHP] Contatore Scan QR con redirect PHP 10
I [HTML] redirect url HTML e CSS 12
C Redirect passaggio a https Web Server 1
L Domini Alias, Redirect o Domini aggiuntivi con cPanel: dubbi Domini 1
D [Javascript] json_econde redirect a pagina esterna Javascript 0
A redirect da pagina php chiamata da ajax PHP 2
F [PHP] [HTML] Redirect Complicato PHP 5
N [Apache] redirect 301 da vecchio a nuovo sito Apache 0
Fredyss redirect a altra pagina php dopo commit su postgresql con PDO PHP 1
M redirect php email inviata con successo PHP 2
F Redirect 301 non www a www SEO e Posizionamento 1
M [PHP] redirect se non si connette al db PHP 1
Laskot Login php e redirect PHP 1
F Redirect 301 SEO e Posizionamento 2
elpirata [Javascript] Redirect condizionale per link a pagine Javascript 2
F Redirect match 301 SEO e Posizionamento 1
F Redirect 301 SEO e Posizionamento 1
booklisa [WordPress] Errori vari console chrome, redirect file .htaccess + internalizza risorse WordPress 1
felino [404] Page 404 e redirect alla home page SEO e Posizionamento 0
A [PHP] Problema redirect PHP 0
delfinaki Redirect senza www su dominio geografico di terzo livello Domini 1
P [HTML] Redirect sito su pagina per Android HTML e CSS 6
G [WordPress] Redirect dopo registrazione WordPress 0
stellare21 [ASP.Net] Redirect a una pagina ASP.NET 2
E [PHP] Redirect Alias su dominio principale con url primario PHP 4
F Redirect on Ajax form jQuery 1
G Errori PHP è possibile fare un redirect ad una pagina d'errore? PHP 3
G php redirect header location pagina bianca PHP 0

Discussioni simili