Problema con redirect dopo submit

  • Creatore Discussione Creatore Discussione cris92
  • Data di inizio Data di inizio

cris92

Nuovo Utente
26 Ago 2011
20
0
0
Ciao a tutti, ho realizzato un form in html, dopo il submit del form viene visualizzata una pagina con i risultati e fin qui tutto ok!
il problema sta nel fatto che prima di mostrare i risultati vorrei far vedere un'altra pagina per tot secondi e solo dopo reindirizzare ai risultati, come posso risolvere?
ho già provato con un redirect in html (meta) ma poi la pagina dei risultati risulta vuota. AIUTO!!:crying:
 
ciao
nel redirect perdi i valori dei post
nella pagina che devi far vedere per qualche momento devi:
raccogliere i vari $_post provenienti dal form e ritrasmetterli alla pagina del riassunto
dopo averli raccolti devi passarli tramite sessione o tramite cookie alla pagina ruassunto
nella pagina rissunto ti leggerai le sessioni o i cookie e li visualizzi

p.s.
non c'entra nulla se fai il redirect col meta html o con heder location php
 
potresti farmi un esempio pratico? non ho mai usato le sessioni! grazie mille:byebye:
 
La semplicità è inversamente proporzionale all'utilità di fare una cosa del genere. Ed è tutto molto semplice.
Detto questo se proprio vuoi creare una cosa del genere nella pagina che attende tot secondi avrai le variabili passate tramite post.
A questo punto ti basta prenderle e salvarle in variabili di sessione in questo modo:
PHP:
session_start(); //apre la sessione
$_SESSION['favcolor'] = $_POST['favcolor'];
$_SESSION['animal']   = $_POST['animal'];
$_SESSION['date']     = $_POST['date'];
Nella pagina successiva apri di nuovo la sessione e utilizzi le variabili $_SESSION['...'] che conterranno quello che contenevano le corrispondenti variabili $_POST['...'].
 
non va! :mad:
La struttura del mio script è così:
index.html che contiene il form
calc.php che contiene tutte le operazioni da eseguire
attesa.php la pagina per l'attesa appunto
result.php dove vengono visualizzati i dati

nella index ho messo l'action ad attesa.php
poi in attesa.php ho messo questo codice:
HTML:
<?php
session_start(); //apre la sessione
$_SESSION['menu'] = $_POST['menu'];
?>
e in result ho messo
HTML:
<?php $_SESSION['menu'];?>
cosa sbaglio? :book:
 
questo è l'html
HTML:
<form class="jotform-form" action="attesa.php" method="post" name="form_13331130791" id="13331130791" accept-charset="utf-8"/>
<li class="form-line" id="id_5">
        <label class="form-label-left" id="label_5" for="input_5">
          Scegliere la nazione da cui viene inviato il denaro<span class="form-required">*</span>
        </label>
        <div id="cid_5" class="form-input">
          <select class="form-dropdown validate[required]" style="width:150px" id="input_5" name="menu">
            <option> </option>                    
			<option name="menu" value="Australia">Australia</option>           <option name="menu" value="Austria">Austria</option>
			ecc..
          </select>
        </div>
      </li>
</form>
 
Ok hai una pagina in più rispetto a quanto noi pensavamo, o almeno io.
Se il post invia alla pagina attesa.php (dove devi mettere il codice postato da me precedentemente) a cosa ti serve la pagina calc.php?
Devi aprire di nuovo la sessione nella pagina result.php prima di stampare le variabili di sessione.
 
ok ho fatto tutto come dici, ma i risultati non vengono stampati nella pagina result.php
 
ciao
forse ti semplifico
la pag del form va bene (sembra)
la pag. attesa.php
PHP:
<?php
session_start();//questa istruzione DEVE essere messa alla prima riga (cioè prima di qualsiasi output html) di tutte le pagine in cui usi le sessioni
//se nella pagina hai <!DOCTYPE HTML PUBLIC "-....... l'istruzione DEVE andare prima
$_SESSION['menu']=$_POST['menu'];//e gli eventuali altri $_POST
echo "grazie di averci scritto";
echo "<meta http-equiv='Refresh' content='3; URL=calc.php'>";
?>
la pag. calc.php
PHP:
<?php
session_start();//come prima
echo "hai scelto ".$_SESSION['menu'];
//......
?>

dimenticavo: parli di pag calc.php, poi di pag result sono diverse?
 
Ultima modifica:
si sono diverse la pagina cal.php contiene i calcoli da fare es:1+2 ecc
mentre la pagina result.php mostra in una tabella tutti i valori
 
grandissimo ho risolto!!
ed ho anche "imparato" le sessioni!!
:fonzie::fonzie::fonzie::fonzie::fonzie::fonzie:
grazie mille:byebye::byebye:
 
ciao
ecco un esempio
pag. form.php
PHP:
<form class="jotform-form" action="attesa.php" method="post" name="form_13331130791" id="13331130791" accept-charset="utf-8"/>
metti un numero<input name="num_1" type="text" /><br>
metti un altro numero<input name="num_2" type="text" /><br>
<input type="submit" name="Submit" value="Invia"><br>
</form>
la pag. attesa.php
PHP:
<?php
session_start();//questa istruzione DEVE essere messa alla prima riga di tutte le pagine (cioè prima di qualsiasi output html) in cui usi le sessioni
//se nella pagina hai <!DOCTYPE HTML PUBLIC "-....... l'istruzione DEVE andare prima
$_SESSION['num_1']=$_POST['num_1'];
$_SESSION['num_2']=$_POST['num_2'];
echo "aspetta 3 secondi";
echo "<meta http-equiv='Refresh' content='3; URL=calc.php'>";
?>
la pag. calc.php
PHP:
<?php
session_start();//come prima
$_SESSION['risultato']=$_SESSION['num_1']+$_SESSION['num_2'];
echo "<meta http-equiv='Refresh' content='0; URL=result.php'>";
?>
la pag. result.php
PHP:
<?php
session_start();//come prima
echo "risultato ".$_SESSION['num_1']."+".$_SESSION['num_2']."=".$_SESSION['risultato'];
?>
anche se non capisco perchè devi fare tutto l'ambaradan di passare da una pag. all'altra, l'es. ti fa capire come le sessioni si trasmettano tra le pagine
 

Discussioni simili