Fermeture de session
Résolu
rafale69300
Messages postés
84
Date d'inscription
Statut
Membre
Dernière intervention
-
rafale69300 Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
rafale69300 Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
J'ai un petit problème, je n'arrive pas à placer mon unset($_SESSION['choix']);dans ma page car je la détruit trop tôt donc si quelqu'un pouvait m'aider merci d'avance.
J'ai un petit problème, je n'arrive pas à placer mon unset($_SESSION['choix']);dans ma page car je la détruit trop tôt donc si quelqu'un pouvait m'aider merci d'avance.
<p><!--Formulaire--> <form name="formulaire" action="./index.php?page=test&categorie=search" method="post" id="site"> </p> <p align="center"><?php $requete='SELECT id_site,lib_site FROM sites order by lib_site'; $resultat= mysql_query($requete);?> <select name="choix" onChange="document.forms['site'].submit();"> <option value="0">Choisissez un site</option> <?php while ($donnees = mysql_fetch_array($resultat)){ echo '<option value='.$donnees[0].'>'; echo $donnees[1]; echo'</option>'; } ?> </select> </form> <?php // on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages if(isset($_POST['choix'])) $_SESSION['choix'] = $_POST['choix'] ;{ if(isset($_SESSION['choix'])){ $sql = 'SELECT count(*) FROM batiments where id_site = '.$_SESSION['choix'].' '; // on exécute cette requête $resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on récupère le nombre d'éléments à afficher $nb_total = mysql_fetch_array($resultat); // on teste si ce nombre de vaut pas 0 if (($nb_total = $nb_total[0]) == 0) { ?> <div> Aucune réponse </div> <?php } else { ?> <p align="center"> <p align="center"> <p align="center"> <?php if(isset($_POST['choix'])) $_SESSION['choix'] = $_POST['choix'] ;{ $requete2="SELECT lib_site FROM sites WHERE id_site ='".$_SESSION['choix']."' "; $resultat2=mysql_query($requete2); while ($donnees2 = mysql_fetch_array($resultat2)){ ?> Voici tous les bâtiments du site suivant : <strong><?php echo $donnees2['lib_site'];?></strong><br><br>Pour plus d'informations sur un bâtiment, cliquez sur son nom.<br><br><?php } echo '<div align="center"><table width="500px" border="1" align="center"> <tr> <td><div align="center"><strong>Code Bâtiment</strong></div></td> <td><div align="center"><strong>Nom Bâtiment</strong></div></td> <td><div align="center"><strong>Nb Etage Bâtiment</strong></div></td> <td><div align="center"><strong>Fonction Bâtiment</strong></div></td> </tr>'; // sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0 if (!isset($_GET['debut'])) $_GET['debut'] = 0; $nb_affichage_par_page = 1; // Préparation de la requête avec le LIMIT $sql = 'SELECT code_bat, nom_bat, nbEtage_bat, fct_bat, id_bat, lib_site FROM batiments B, sites S WHERE B.id_site='.$_SESSION['choix'].' AND S.id_site = B.id_site ORDER BY code_bat ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page; // on exécute la requête $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on va scanner tous les tuples un par un while ($data = mysql_fetch_array($req)) { // on affiches les résultats dans la <table> ?> <tr><td><div align="center"><?php echo $data['code_bat'];?></div></td><td><div align="center"><?php echo '<a href="./index.php?page=info_bat&categorie=batiment&choix='.$data['id_bat'].'">'.$data['nom_bat'].'</a>';?></div></td><td><div align="center"><?php echo $data['nbEtage_bat'];?></div></td><td><div align="center"><?php echo $data['fct_bat'];?></div></td></tr><?php } // on libère l'espace mémoire alloué pour cette requête mysql_free_result ($req); echo '</table><br />'; // on affiche enfin notre barre echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 1).'</span>'; } // on libère l'espace mémoire alloué pour cette requête mysql_free_result ($resultat); echo '</table><br />'; } ?> </p></div> <?php } } ?> </p></p>
A voir également:
- Fermeture de session
- Sytadin fermeture - Télécharger - Transports & Cartes
- Forcer fermeture application windows - Guide
- Frais de fermeture compte paypal - Guide
- Annuler fermeture onglet chrome - Guide
- Fruitz fermeture - Accueil - Applications & Logiciels
5 réponses
Bonjour,
Encore faut-il savoir précisément ce que tu souhaites faire.
De ce que j'ai pu lire du code, tu récupère $_POST["choix"] pour le mettre en session et l'utiliser tout au long de ton code.
Première remarque, à plusieurs endroit tu fais les mêmes instructions alors qu'elles peuvent être faite une seule fois au début de ton script :
- récupération de $_POST["choix"]
- stockage dans $_SESSION["choix"]
Ces instructions sont à faire au début de ton script.
Ensuite, pourquoi vouloir libérer $_SESSION["choix"] si tu l'utilise tout au long de ton script ?
Si tu souhaite réellement le supprimer, alors pourquoi mettre "choix" en session si ce n'est utiliser que dans cette page là, c'est totalement inutile, autant stocker dans une variable PHP locale à ta page.
Dans tous les cas, si tu souhaite vider de la session ta variable "choix", puisque tu l'utilise jusqu'à casiment la fin, je dirai qu'il te faut faire un 'unset' à la fin de ton programme.
Encore faut-il savoir précisément ce que tu souhaites faire.
De ce que j'ai pu lire du code, tu récupère $_POST["choix"] pour le mettre en session et l'utiliser tout au long de ton code.
Première remarque, à plusieurs endroit tu fais les mêmes instructions alors qu'elles peuvent être faite une seule fois au début de ton script :
- récupération de $_POST["choix"]
- stockage dans $_SESSION["choix"]
Ces instructions sont à faire au début de ton script.
Ensuite, pourquoi vouloir libérer $_SESSION["choix"] si tu l'utilise tout au long de ton script ?
Si tu souhaite réellement le supprimer, alors pourquoi mettre "choix" en session si ce n'est utiliser que dans cette page là, c'est totalement inutile, autant stocker dans une variable PHP locale à ta page.
Dans tous les cas, si tu souhaite vider de la session ta variable "choix", puisque tu l'utilise jusqu'à casiment la fin, je dirai qu'il te faut faire un 'unset' à la fin de ton programme.
Merci pour ton aide, je t'explique la situation , cette page est inclus dans la page index grâce à ce code :
donc pour cette page la catégorie est search et la page test.
Dans la page d'index, j'ai ma fonction qui permet de faire un affichage page par page.
Donc dans le code du précédent poste je met ma variable POST ['choix'] en sessions pour qu'elle puisse etre gardé en mémoire sur la page 1 mais aussi la page 2 puis la page 3 et ainsi de suite.
<?php if(isset($_GET['page'])){ include("./".$_GET['categorie']."/".$_GET['page'].".php"); }else{ if(!isset($_SESSION['identifiant']) && !isset($_SESSION['motdepasse'])){ include("./accueil.php"); }else{ include("./accueil.php"); ?> <?php } } ?>
donc pour cette page la catégorie est search et la page test.
Dans la page d'index, j'ai ma fonction qui permet de faire un affichage page par page.
Donc dans le code du précédent poste je met ma variable POST ['choix'] en sessions pour qu'elle puisse etre gardé en mémoire sur la page 1 mais aussi la page 2 puis la page 3 et ainsi de suite.
Ok, dans ce cas ce que je ne comprends pas c'est pourquoi tu souhaite détruire ta variable de session "choix" ?
Puisque le but semble de la garder au fil des pages.
Puisque le but semble de la garder au fil des pages.
Désolé de te répondre que maintenant. Mais enfaite c'est que je souhaite que la session reste ouverte durant la pagination, donc une fois que le visiteur a fini, il va visité une autre page puis s'il désire revenir sur la page de pagination bah la session est toujours en mémoire donc cela ne me va pas je voudrais que la session ne soit plus en mémoire s'il retourne sur cette page.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question