PHP recuperer variable de session

Coralie -  
 Coralie -
Bonjour,

En page 1 : l'utilisateur se logue

session_start();
...
$pseudo = $_SESSION['pseudo'];

en page 2 : des liens doivent apparaitre SI la variable de session existe

session_start();
if (isset($_SESSION['pseudo']))
{echo $_SESSION['pseudo'];};

En page 1, mes fonctions fonctionnent car je parviens à afficher la variable de session avec un echo (Bienvenue $_SESSION['pseudo']).
Mon test en page 2 ne fonctionne pas, alors que j'ai bien commencer ma page par un session_start()...

Quelqu'un peut il m'aider ?
Merci merci
Configuration: Windows XP
Safari 530.5

18 réponses

  1. adgem0
     
    Salut !
    Dans ta page 1, ce serait pas plutot $_SESSION['pseudo'] = $pseudo; ??
    1
  2. Coralie
     
    C'est dingue d'ailleurs, dans tous les tutos ou script, ca parait simple comme bonjour en utilisant un session_start, mais impossible de le faire marcher... quelqu'un aurait il une solution svp ?

    merci d'avance
    0
  3. Nixial
     
    Bonjour,

    Tu as essayé de mettre dans ta page 2 simplment :

    session_start();

    echo $_SESSION['pseudo'];

    Petite remarque en passant tu as un point virgule en trop :

    if (isset($_SESSION['pseudo']))
    {

    echo $_SESSION['pseudo'];

    }; <-- celui là

    A+.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Coralie
     
    malheureusement ca ne change rien...
    merci pour ton aide quand meme :(

    qq'un a une autre idée ? je ne dois pas etre la seule a qui ce point pose probleme je pense... mais rien de pertinent dans les tutos et forum en ligne...
    0
  6. le père
     
    Bonjour

    Peux-tu montrer le script de tes 2 pages, s'il n'est pas trop long ?
    0
  7. Coralie
     
    Page 1 :

    <?php
    mysql_connect("localhost", "login", "pass");
    mysql_select_db("mabase");
    session_start();
    $loginOK = false;
    if ((!empty($_POST['email'])) && (!empty($_POST['password'])) )
    {
    extract($_POST);
    $sql = "SELECT pseudo, password FROM matable WHERE email = '".addslashes($email)."'";
    $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
    if (mysql_num_rows($req) > 0) {
    $data = mysql_fetch_assoc($req);
    if ($password == $data['password']) {$loginOK = true;}
    }
    if ($loginOK) {$_SESSION['pseudo'] = $data['pseudo'];
    $_SESSION['pseudo'] = $pseudo ;
    }
    };
    mysql_close();
    ?>

    Lien en page 1 pour aller en page 2 :

    $sqlconnectes = "SELECT pseudo FROM matable";
    $rqconnectes = mysql_query($sqlconnectes);
    while($rang = mysql_fetch_array($rqconnectes))
    {echo '<a href=profil.php?membre='.$rang['pseudo'].'>'.$rang['pseudo'].'</a>';}

    Page 2 (où je teste si ma variable contient qq chose) :

    <?php
    session_start();
    echo $_SESSION['pseudo'];
    ?>
    0
  8. le père
     
    {$_SESSION['pseudo'] = $data['pseudo'];
    $_SESSION['pseudo'] = $pseudo ;

    J'ai l'impression que tu écrases la valeur de $data['pseudo']; avec celle de $pseudo.
    $pseudo contient-il bien ce que tu crois ?
    0
  9. Coralie
     
    J'avais bien pensé à ca, en page 1 j'ai fait des test echo pour afficher soit $_SESSION['pseudo'] ou $pseudo : ca fonctionne.

    J'ai meme essayer de supprimer la ligne $_SESSION['pseudo'] = $pseudo
    de ma page 1, avec toujours le meme résultat...

    (merci lepere, c'est super sympa d'essayer de m'aider...)
    Je n'ai donc toujours pas de solution :(
    0
  10. le père
     
    Je ne comprends pas très bien la logique de ton programme, mais ce n'est pas grave pour l'instant, ça n'explique pas ton problème

    Peux tu modifier dans ta 1ère page :

    if ($loginOK) {
    $_SESSION['pseudo'] = $data['pseudo'];
    echo '**',$_SESSION['pseudo'],'**';
    }
    et voir si ça affiche ou non la bonne valeur ?
    0
  11. Coralie
     
    j'ai fait ce que tu as proposé :
    - sur la page 1, ça s'affiche bien
    - sur la page 2, seules les étoiles s'affichent...

    Pour répondre a ta question :
    - la page 1 est une home, où se trouvent une brique d'identification et une liste pseudos (dirigeant vers les pages profil : page 2)
    - la page 2 est donc une page profil où sont listées plusieurs infos

    Je veux afficher un lien en plus sur la page 2 "Lui écrire" permettant aux membres connectés de voir ce lien.
    En gros sur la page 2 :
    - si le membre est connecté
    > afficher le lien "Lui écrire"

    Pour cela il faut que je récupère la variable de session...
    0
  12. le père
     
    Je ne comprends toujours pas. Je ne vois pas ce qui permettra de savoir si les autres membres sont connectés ou pas. Chacun ne verra que lui-même Il y a peut-être un malentendu fondamental sur ce que sont les variables de session.
    Pour voir la page 2, tu cliques bien sur l'un de tes liens de la page 1? et c'est à ce moment que la page home est remplacée par la page profil, et que tu ne retrouves pas ta variable de session ?
    0
  13. Coralie
     
    Ma liste de connectés est une requete sql que je n'ai pas mis plus haut, mais qui fonctionne très bien.
    Il n'y a pas de malentendu, ma variable de session me permettra d'afficher un lien sur la page 2, SI l'utilisateur est loggué.

    Ca parait simple mais c'est un schmilblick sans nom :)
    0
  14. le père
     
    ok, mais peux-tu me confirmer que pour voir la page 2 tu cliques sur un lien de la page 1, tu ne te contentes pas de rafraichir la page 2 ou de la rouvrir en tapant l'adresse ?
    Au fait, travailles-tu en local, ou as-tu un lien sur lequel on peut voir ce qui se passe ?
    As-tu des messages d'erreurs que tu aurais considérés comme négligeables ?
    0
  15. manelsousse Messages postés 63 Statut Membre
     
    tout vas ben comme ca normalement pouvez vous ecrire tout le code pour bien visualiser l'erreur?
    0
  16. Coralie
     
    oui pour aller en page 2, il faut cliquer sur le lien en page 1...
    je ne bosse pas en local, mon site de test est hebergé chez free
    0
  17. le père
     
    As-tu créé un répertoire "sessions" à la racine de ton site ? c'est obligatoire chez free pour que les sessions marchent. Mais sans ce répertoire, tu aurais dû avoir des messages d'erreur.
    Si ton site est hébergé chez free, peux-tu donner l'adresse et créer un identifiant bidon pour que je puisse faire la manip et voir le problème ?
    0
  18. Coralie
     
    mon dossier sessions existe bien, les fichiers sont bien créés à l'intérieur...
    je ne peux pas donner un accès à mon ftp, désolé
    0