Ripopolamento valori della form

Ciao,

  ho visto che quando, per es., dalla pag1 alla pag2 invio dei dati da form, con il pulsante indietro non mi ripopola i dati che avevo inserito.

sto usando un pulsante creato con il seguete codice

   echo "<input type='button' value='indietro' onclick=\"location.href='home.php';\" style='margin-left:185px'/>\n\t\t\t";

come mai?

Saluti

andreA

inviato 9 anni fa
cybaSsh
X 0 X

E' normale poiché con quel pulsante non fai altro che chiedere al server di visualizzare la pagina home.php, che ovviamente si limita a mostrare il form vuoto.

Potresti provare ad accedere alla pagina precedente con:

onClick="history.back()"

In questo caso è il browser che ti fa rivedere la pagina e (generalmente) visualizzerà la copia in cache, con i dati nel form, ma ci sono eccezioni...

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

ma se volessi far puntare un pulsante ad una vecchia pagina, e riprendere una variabile di sessione tipo $intestazione(che è a sua volta un array monodimensionale)...tipo:

home.html ----> home.php ----> elabora.php ----> Registra.php

                                  ^___________________________|

come mai non riesco a pescarla? viene resettata....

Andrea

risposto 9 anni fa
cybaSsh
X 0 X

se è una variabile di sessione non dovresti perderla...

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

bene,

  riprendo l'esempio, aggiungo che ho inserito 2 pulsanti e messi in una form così dichiarata

<form action='home.php' method='post'>
  <input type='button' value='torna' onclick=\"location.href='home.html';\" />
  <input type='button' value='passa' onclick=\"location.href='home.php';\" />
</form>

Quindi

home.html ----> home.php ----> elabora.php ----> Registra.php

        ^                         ^___________________________|

         |_________________________________________|

facendo una stampa a video, vedo che la sessione mi rimane, finquando non premo uno dei pulsanti da "registra". Ho notato che la session id rimane la stessa, ma tutte le variabili dentro a $_SESSION, sono desettate, (intendendo che le variabili ci sono ma sono settate a null)

??

Andrea

risposto 9 anni fa
cybaSsh
X 0 X

ancora più strano (per me ovviamente) è che l'id della sessione rimane lo stesso anche se chiudo il browser.... ed ho altre finestre aperte :tichedoff:

solo se chiudo tueei i browser attivi mi cambia ID della sessione...

Sto usando Firefox

Andrea

risposto 9 anni fa
cybaSsh
X 0 X

Certo, perchè la sessione è unica per lo stesso sito, se le altre finestre sono su altri siti la sessione termina allo scadere della durata.

risposto 9 anni fa
LonelyWolf
X 0 X

allora facendo un esempio mi funziona tutto..evidentemente devo controllare bene l'ordine delle istruzioni sul codice.

questo è il codice che ho prodotto:

Nonno.php

<?php
session_start(); //credo non sia necessario
?>
<form id='form1' name='form1' method='Post' action='padre.php'>
   <input type='text' name='testo' />
   <input type='submit' value='vai al padre'  />
</form>

Padre.php

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
//print_r($_POST);


if (isset($_POST[testo])){
   $intesta[testo]=$_POST['testo'];
   $intesta[id]=session_id();
   $_SESSION[intesta]=$intesta;
   print_r($intesta);   
} else {
   echo "Variabile di sesisone non registrata<br />";
   $intesta=$_SESSION[intesta];
}
print_r($intesta);

echo "<form id='form2' name='form2' method='post' action=''>\n\t";
echo "<input type='button' value='vai al figlio' OnClick=\"location.href='figlio.php';\" />\n\t";
echo "<input type='button' value='torna al nonno' OnClick=\"location.href='nonno.php';\" />\n\t";

echo "</form>";
?>

Figlio.php

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php

$intesta=$_SESSION[intesta];
print "testo è: $intesta[testo]<br />";
print_r($intesta);

echo "<form id='form2' name='form2' method='post' action='padre.php'>\n\t";
echo "<input type='button' value='torna al padre' OnClick=\"location.href='padre.php';\" />\n\t";
echo "<input type='button' value='torna al nonno' OnClick=\"location.href='nonno.php';\" />\n\t";
echo "<input type='button' value='Esci' OnClick=\"location.href='disereda.php';\" />\n\t";
echo "</form>";
?>

e Disereda.php

session_start();  
 // cancello tutti i dati di sessione  
$_SESSION = array();  
// Cancelliamo l'eventuale cookie di sessione  
if (isset($_COOKIE[session_name()]))  
{  
     setcookie(session_name(), '', time()-42000, '/');  
}  
  
// distruggiamo la sessione  
session_destroy();

$id=session_id();
echo "id: " . $id;
echo "<input type='button' value='ritorna' OnClick=\"location.href='nonno.php';\" />";
header("Location: Nonno.php");
?>

1)L'errore che mi da è che ho messo in fondo la funzione header per rindirizzare alla pagina nonno.php

come si può fare un rindirizzamento su una pagina che cancella la sessione? C'è una via alternativa?

2)è meglio o peggio gestire la distruzione della sessione cosi'?

session_start();

session_unset();

if (session_destroy()){
   echo "sessione distrutta<br />";
} else {
   echo "non è stato possibile ";
}

$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";
# // Cancelliamo l'eventuale cookie di sessione  
# if (isset($_COOKIE[session_name()]))  
# {  
#     setcookie(session_name(), '', time()-42000, '/');  
# }
print_r($_SESSION);
echo "<input type='button' value='ritorna' OnClick=\"location.href='nonno.php';\" />";

Ciao

risposto 9 anni fa
cybaSsh
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda