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

PHP & Base de données Discussion :

Session à travers un while [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut Session à travers un while
    Bonjour,

    je fais une requête classique avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    while($row_user = $sql_users -> fetch_assoc()){
         $_SESSION['user'] = $row_user['u_id_user'];
         echo "<tr>\n";
         echo "\t<td>".$_SESSION['user']."</td>\n";
         echo "\t<td>".$row_user['u_first_name']."</td>\n";
         echo "\t<td>".$row_user['u_last_name']."</td>\n";
         echo "\t<td>".$row_user['u_email']."</td>\n";
         echo "\t<td>".$row_user['u_last_connect']."</td>\n";
         echo "\t<td><a class=\"btn btn-success\" href=\"index.php?section=update_user&id_user=".$_SESSION['user']."&lang=".$_SESSION['lang_back']."\" title=\"".TXT_ACTIVE."\"><b>V</b></a></td>\n";
         echo "</tr>\n";
    }
    Je désire transformer le lien via le Htaccess; cela je sais faire; de ce type:

    Ce que je ne sais pas faire, c'est que lors de l'édition de l'utilisateur, je voudrai récupérer son ID en session et ne pas le faire apparaître dans l'url...

    Dois-je faire autre chose dans ma boucle while avant de passer sur la page d'édition de l'utilisateur?

    Merci de vos réponse. David

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi mets tu dans l'url des variables qui sont en session ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Je me suis peut-être mal exprimé. Je déclare ma session dans ma boucle comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while($row_user = $sql_users -> fetch_assoc()){
         $_SESSION['user'] = $row_user['u_id_user'];
    }
    mon lien initial ressemble à cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "\t<td><a class=\"btn btn-success\" href=\"index.php?section=update_user&id_user=".$_SESSION['user']."&lang=".$_SESSION['lang_back']."\" title=\"".TXT_ACTIVE."\"><b>V</b></a></td>\n";
    Que je change par cela via htaccess:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "\t<td><a class=\"btn btn-success\" href=\"en/update_user\" title=\"".TXT_ACTIVE."\"><b>V</b></a></td>\n";
    Ce que je n'arrive pas à faire, c'est récupérer la session correspondant à l'ID du user quand je passe à la page de traitement.

    Merci d'avance de vos réponses

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ma question est la même : pourquoi dans ton lien initial tu mets des variables de session ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Bonjour,

    Le lien, c'était pour l'exemple.

    Donc voici le problème:
    J'ai 2 pages (1 qui a la liste des utilisateurs et 1 qui fait le traitement de modifications).

    Donc dans ma page de listing utilisateurs, j'ai ma boucle comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while($row_user = $sql_users -> fetch_array()){
         $_SESSION['user'] = $row_user['u_id_user'];
         ...
         ...
    }
    Le lien vers la page de traitement des modifications:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "\t<td><a class=\"btn btn-success\" href=\"en/update_user\" title=\"".TXT_ACTIVE."\"><b>V</b></a></td>\n";
    La requête que je fais dans la page de traitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_user = "UPDATE user SET u_active=1 WHERE u_id_user=".$_SESSION['user'];
    Et c'est la mon problème, je n'arrive pas à récupérer le bon ID. Quand je fais un echo de ma requete, $_SESSION['user'] vaut ArrayMerci d'avance.
    David

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Bonjour,
    J'ai tout vérifié et le souci persiste...
    J'ai bien session_start tout en haut de ma page.

    Voici ce que me donne mon print_r de la session:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Array ( [0] => 1 [1] => 2 [2] => 3 )
     
    [id_user] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
            )
    Voici ce que je teste (cela fonctionne):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_user = "UPDATE user SET u_active=1 WHERE u_id_user=".$_SESSION['id_user'][1];
    Ma question est de savoir comment je peux récupérer la valeur de l'indice [1] par ma session. Je suis perdu...

    Merci d'avance.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Puisque tu nous dis que cette requête fonctionne, qu'est ce qui ne fonctionne pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Cela fonctionne car je le fais en manuel.

    Ma question est de savoir comment je passe la valeur de l'indice dans ma session.

    C'est cela ma question.
    Merci d'avance

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je suis desolé je ne vois pas ou tu veux en venir.
    La valeur c'est $_SESSION['id_user'][1]
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Bon...

    Voici le code de ma boucle page 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_SESSION['id_user'] = array();
    while($row_user = $sql_users -> fetch_array()){
         $_SESSION['id_user'][] = $row_user['u_id_user'];
    }
    Si je ne me trompe pas, j'ai bien un tableau. Je l'ai bien avec print_r.
    Ensuite, pour chaque ligne, j'ai un lien pour éditer vers la page 2.
    Sur cette page je dois faire un un update where ma variable de session comme ceci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE user SET u_active=1 WHERE u_id_user=".$_SESSION['id_user'][MAIS LA JE METS QUOI]

    Ce que je n'arrive pas à faire c'est récupérer l'id de l'utilisateur qui est dans mon tableau.

    J'espère avoir été plus clair.
    Merci d'avance

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si je déchiffre tout ce que tu n'as pas dit :
    - tu as une requête qui liste les utilisateurs qui sont dans ta bdd et les affiche dans un tableau HTML
    - à partir de ce tableau HTML tu veux permettre l'edition des informations d'un utilisateur
    - tu as donc commencé par faire un lien mais ca ne te convient pas car tu ne veux pas avoir l'id ecrit dans l'url.

    Si j'ai tout bien compris ...
    Au lien d'un lien, utilise un formulaire POST avec l'id en champs caché.
    Ce que tu as fais avec les sessions n'est par contre pas bon du tout : tu n'as fait que stocker l'intégralité des ids de ta table, ce qui ne te sers à rien.

    Réalise quand même que quelque soit la méthode, tu ne peux pas cacher l'id que tu transmets, au mieux tu peux ne pas le rendre trop visible.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Si je déchiffre tout ce que tu n'as pas dit :
    - tu as une requête qui liste les utilisateurs qui sont dans ta bdd et les affiche dans un tableau HTML
    - à partir de ce tableau HTML tu veux permettre l'edition des informations d'un utilisateur
    - tu as donc commencé par faire un lien mais ca ne te convient pas car tu ne veux pas avoir l'id ecrit dans l'url
    J'ai pensé dire le principale... Je ne suis pas francophone; juste francophile. Dans ma langue materenelle, pas de forum
    Point1 , 2 & 3 : OK!

    Je désire cacher l'id de l'utilisateur; ne pas le passer en GET. Est-ce possible?
    Si oui comment? Si pas possible, je peux "tricher" avec le htaccress

    Merci

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux tout faire :
    - un lien classique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="index.php?section=update_user&id_user=' .  $row_user['u_id_user'] .'">V</a>';
    - un lien que tu transformes avec mod_rewrite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="en/update_user/' .  $row_user['u_id_user'] .'">V</a>';
    - un formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo '<form action="en/update_user" method="post">
    <input type="hidden" value="' .  $row_user['u_id_user'] .'"/>
    <input type="submit" value="V" />
    </form>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Session à travers domaines/sous-domaines - données non transmises
    Par Jacynthe dans le forum Langage
    Réponses: 2
    Dernier message: 16/11/2011, 15h55
  2. Comment passer un objet à travers le scope session ?
    Par verbose dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 08/02/2008, 13h12
  3. [Cookies] Session au travers des sockets
    Par FMC dans le forum Langage
    Réponses: 7
    Dernier message: 22/11/2007, 18h55
  4. boucle while et session
    Par oceane751 dans le forum Langage
    Réponses: 9
    Dernier message: 06/06/2006, 04h22
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 16h20

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