IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

changement de pages et variables de session


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Points : 37
    Points
    37
    Par défaut changement de pages et variables de session
    Bonjour à tous,

    J'ai un problème qui a surement une solution élégante, seulement je ne la vois pas.

    J'ai plusieurs pages :
    index.php
    ajouter_user.php
    supprimer_user.php

    J'ai fait mes fonctionnalités pour faire mes différentes opérations, ça c'est bon. Mon problème vient du fait que je vérifie une variable de session, pour savoir si je dois afficher telle ou telle partie de la page , ex de supprimer_user.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    if(!isset($_SESSION['remove_user'])){
    		echo 'Effacer un utilisateur :';
    		echo '<form name="form1" method="post" action="php/add_remove/search_staff.php?action=remove">';
    		echo '<table><tr><td>Nom : </td>';
    		echo '<td><INPUT type=text name="nom"></td></tr>';
    		echo '<tr><td>Prénom : </td>';
    		echo '<td><INPUT type=text name="prenom"></td></tr></table>';
     
    		echo '<br><input class="button_add" type="submit" name="Submit" value="Envoyer">';
    		echo '</form>';
     
    	}
    	else if(isset($_SESSION['remove_user'])){
    		echo 'Etes vous sûr de vouloir effacer : <br>';
    		echo '<form name="form1" method="post" action="php/add_remove/delete_user.php">';
    		echo '<table><tr><td>Nom : </td>';
    		...
    		}
    Dans la première partie, quand je n'ai pas de $_SESSION['remove_user'], j'affiche des champs de recherche, et je pointe sur le fichier search_user.php, ou je fouille la base à la recherche de l'utilisateur. Dans search_user.php, je met $_SESSION['remove_user'] à 1, et je reviens sur ma page supprimer_user.php. Comme ma variable de session est instanciée, j'ai le second formulaire qui s'affiche. Si l'utilisateur clique, dans delete_user.php je détruit l'utilisateur de la base de données, et je met ma variable de session remove_user à NULL. Dans ce cas là, ça marche.

    Maintenant, si la personne fait la première étape (la recherche), se retrouve sur le second formulaire mais ne clique pas sur envoyer, et préfère changer de page, s'il revient ensuite sur cette page, il aura à nouveau le second formulaire, au lieu du premier. Comment puis-je éviter ce comportement ?

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Pour faire simple, la destruction d'une variable de session se fait par URL ( avec $_GET ) , et pas avec POST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a href='deconnexion?type=decon&id=idUtil'>Deconnexion</a>
     
    if( isset ($_GET['type'] && $_GET['type']=='decon')){
     
    //si $_GET['id'] a une connexion, delete la session 
     
    }
    Conception / Dev

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Points : 37
    Points
    37
    Par défaut
    Hm, donc à chaque appel que je fais à supprimer_user.php , il faut que je fasse passer un attribut $_GET['type']=suppr (donc supprimer_user.php?type=suppr), puis qu'au début de mon fichier php je fasse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if( isset ($_GET['type']) && $_GET['type']=='suppr'){
     
    $_SESSION['remove_user'] = NULL;
     
    }
    C'est bien ça ?

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Oui, c'est cela, et avec ce système, tu n'as normalement plus de problème avec le bouton page précédente ( mais ca c'est surtout utilisé pour les deconnexion, je n'avais pas bien lu ton pb ).

    Une autre solution, pour le faire avec un formulaire en POST, est d'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Header('Location : mapageformulairedecreation.php') ;
    une fois que la variable de session est détruite ( ca va faire une redirection de la page, qui va "empêché" le rafraichissement du formulaire par la suite ), cela rend la page invisible..

    donc surement dans php/add_remove/delete_user.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_POST['delete')){//tu vérifie les variables
     
    unset($_SESSION['user'];//tu détruits
    Header('Location : supprimer_user.php') ;
     
    }
    Conception / Dev

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/05/2010, 13h37
  2. [PHP 5.2] Changement aléatoire d'une variable de session
    Par Ginux dans le forum Langage
    Réponses: 13
    Dernier message: 11/11/2009, 19h11
  3. Perte des variable de session au changement de page.
    Par [Xt-6] dans le forum Langage
    Réponses: 11
    Dernier message: 15/01/2009, 21h28
  4. Rechargement de page et variables de session
    Par lecra dans le forum Langage
    Réponses: 17
    Dernier message: 02/10/2006, 10h07
  5. [Sécurité] Variables de session entre pages
    Par kcizth dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2006, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo