Mon site php coule comme ceci:
Mon problème est qu’il peut être nécessaire pour un utilisateur de cliquer sur le bouton Précédent de Page4.php pour revenir à Page3.php et modifier certaines entrées. Dès que vous serez tous conscients qu’ils reviendront à Page3.php, le formulaire sera vide car la page entière sera rendue dans son état par défaut.
Pour contourner cela et afficher à nouveau la précédente entrée de l'utilisateur, procédez comme suit:
<input value="<?php echo $_POST["guest1Ticket"];?> " type="text" name="guest1Ticket" id="guest1Ticket" onblur="isTicketNumber(this)" size ="22"/>
Ceci étant la partie importante - <?php echo $_POST["guest1Ticket"];?>
Cela fonctionne mais crée un autre problème pour moi. Si l'utilisateur retourne à Page1.php (avant de créer son navigateur) et relance le processus lorsqu'il arrive à Page3.php, les données de la dernière exécution seront chargées dans le formulaire.
Ce que je suppose que je dois faire, c'est effacer toutes les variables de la session lorsque l'utilisateur visite Page1.php. J'ai essayé de faire ça comme ça:
<?php
session_start();
session_unset();
session_destroy();
?>
(Ce qui précède est tout en haut de mon fichier, sans espace avant le premier caractère.)
Aucun avertissement n'est généré lors du chargement de Page1.php, mais les variables de session ne sont pas en cours de suppression. Quand j'arrive à Page3.php, les données de la dernière exécution sont encore entrées dans le formulaire.
Comment puis-je effacer mes données de session correctement?
BTW Je n’ai besoin que de cela pour fonctionner sous Chrome et c’est là que se déroulent les tests.
Utilisez uniquement session_unset () pour les codes obsolètes obsolètes qui n'utilisent pas $ _SESSION.
par exemple, vous pouvez essayer de voir comment cela fonctionne
session.php
<?php
session_start();
$_SESSION = array('session1'=>1,'session2'=>2);
echo $_SESSION['session1']; //1
$_SESSION['session1'] = 3;
echo "<pre>";
print_r($_SESSION); //session one now updated to 3
echo "</pre>";
$_SESSION = array();
if ($_SESSION['session1']) {
echo $_SESSION['session1']; // IS NOW EMPTY
} else {
echo "woops... nothing found";
}
?>
<p>
<a href="destroyed.php">NOW GOING TO DESTROYED PHP<a/>
</p>
<?php
session_destroy();
?>
détruit.php
<?php
session_start(); // calling session start first on destroyed.php
print_r($_SESSION); // prints Array ( )
?>
De la documentation:
If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used,
use unset() to unregister a session variable, i.e. unset ($_SESSION['varname']);
Et prenez soin de session_destroy:
session_destroy détruit toutes les données associées à la session en cours. Il ne désactive aucune des variables globales associées à la session
Utilisez session_unset (). Comme ça:
<?php session_start(); ?><!DOCTYPE html>
<html>
<body>
<?php
$_SESSION["variabletounset"] = "I am going to be unset soon along with all of the other session variables.";
print '<pre>' . "\n";
print_r($_SESSION);
print ' </pre>' . "\n";
session_unset();
print ' <pre>' . "\n";
print_r($_SESSION);
print ' </pre>' . "\n";
?>
</body>
</html>
Cela donnerait:
Array
(
variabletounset => I am going to be unset soon along with all of the other session variables.
)
Array
(
)