Aiuto per reindirizzamento in php

  • Creatore Discussione Creatore Discussione Task Mc
  • Data di inizio Data di inizio

Task Mc

Nuovo Utente
7 Mar 2013
16
0
0
Ciao a tutti, chiedo scusa se si è già parlato di questo argomento ma mi servirebbe in maniera più specifica per il mio caso..
allora..ho realizzato una landing page con annesso form per l'invio di e-mail direttamente nella casella postale da me designata in precedenza..e fino a qui tutto bene, la mail arriva con tutto compilato, campi obbligatori, e messaggio di invio riuscito annesso...il problema dove sta? beh io vorrei mettere al posto di quel bruttissimo messaggio "la mail è stata inviata con successo. grazie.", una pagina di ringraziamento fatta in .php chiamata form-ok.php ... come faccio? so che c'è da inserire l'header ('location:form-ok.php') ma continua OVUNQUE io lo metta a darmi il messaggio di errore per il reindirizzamento..

quacuno mi può aiutare? vorrei sapere dove inserirlo e anche se la mail dopo che io ho messo l'header mi viene inviata comunque

p.s. c'è un modo per metterne addirittura 2 di pagine di reindirizzamento? una nel caso venga completato bene il form ed una nel caso siano stati riscontrati dei problemi?

grazie in anticipo.
 
ciao
header ('location:form-ok.php')
deve venire prima di QUALSIASI output html (anche uno spazio prima del tag <?php è considerato output)
per usarlo anche quando c'è dell out devi usare ob_start() e ob_end_flush() es.
PHP:
<?php
ob_start();
//.........
echo "grazie";//questo è un otput html
header ('location:form-ok.php');
//..........
ob_end_flush();
?>
 
come output viene considerato anche tutta questa parte vero?
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
<title>Invio</title>
</head>

ho provato a metterlo prima ma poi mi segna l'errore proprio nella <head>, poi ho provato a spostare l'ob_start appena sotto la head insieme al <?php e mi da ancora l'errore.. u.u

se ti mando il codice php della pagina di invio che sto realizzando riusciresti a farmi vedere dove va di preciso? tanto in quel codice non sono presenti dati personali che non possono essere inoltrati
 
ciao
si
PHP:
<?php
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
<title>Invio</title>
</head>
<body>
<!-- .... eccetera .....-->
<?php
//eccetera....
?>
</html>
<?php
ob_end_flush();
?>
 
ce l'ho fatta :D grazie mille :D credo di amarti xD

per quanto ho capito quindi nel caso io volessi crearne una anche per un'invio negativo della mail basta che al codice che mi hai dato, sotto all'opzione di errore di invio aggiungo header ('location:form-error.php'); giusto?

es.
PHP:
<?php 
ob_start(); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />   
<title>Invio</title> 
</head> 
<body> 
<------------bla bla bla--------------->
<?php
//qui il php per l'invio
echo "La mail è stata inviata correttamente.";
header ('location:http://prova.edizioniwebmaster60.com/RaffaeleDeratizzazione/form-ok.php#modulo');
 } else {// altrimenti
  echo "Deve compilare la form prima di inviare.";
header ('location:http://prova.edizioniwebmaster60.com/RaffaeleDeratizzazione/form-error.php#modulo');
  }
 
  ?>
</body>
</html>
<?php 
ob_end_flush(); 
?>
 
Ultima modifica di un moderatore:
ciao
dimenticavo, per dare tempo di leggere il messaggio usa
PHP:
header( "refresh:5;url=pagina_che_vuoi.php" );
il 5 rappresenta i secondi di attesa prima di essere reindirizzato
poi se ti da fastidio l'header, in certi casi puoi usare il tag meta (senza i problemi di header)
PHP:
echo "<meta http-equiv='Refresh' content='5; URL=pagina_che_vuoi.php'>";
 

Discussioni simili