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

18 réponses

adgem0
 
Salut !
Dans ta page 1, ce serait pas plutot $_SESSION['pseudo'] = $pseudo; ??
1
Coralie
 
non ca ne change rien... :(
0
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
le père
 
Bonjour

Peux-tu montrer le script de tes 2 pages, s'il n'est pas trop long ?
0
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
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
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
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
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
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
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
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
manelsousse Messages postés 59 Date d'inscription   Statut Membre Dernière intervention  
 
tout vas ben comme ca normalement pouvez vous ecrire tout le code pour bien visualiser l'erreur?
0
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
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
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