Se connecter avec
S'enregistrer | Connectez-vous

prolbème avec $_SESSION

Dernière réponse : dans Programmation



Bonjour, j'ai un problème avec $_SESSION, sa valeur n'est pas transférer!!!
J'ai fait se code:
Code:
  1. <? session_start();
  2. $pseudo=$_POST['login'];
  3. $passe=$_POST['passe'];
  4. $_SESSION['pseudo']=$pseudo;
  5. echo ''.$_SESSION['pseudo'].'';

La sa marche, le echo m'affiche très bien la valeur de $_SESSION['pseudo'] mais dans une autre page quand je fait sa:
Code:
  1. <? session_start();
  2. echo ''.$_SESSION['pseudo'].'';
  3. ?>

Ben la sa marche plus, il n'y a plus aucune valeur dans $_SESSION['pseudo'] !!!

Autres pages sur : prolbeme session

Lassé par la pub ? Créez un compte

euh là c'est pas normal

ça devrait marcher niquel

mais ton <?php session_start(); il faut faire attention qu'il soit exactement sur la premiere ligne de ta page

si ça c'est bon

regardes si rien ne change la valeur de $_SESSION['pseudo'] entre les deux pages

et que tu n'utilises pas de session_register()

Salut,

Effecivement en "LOCAL" Zone Alarm peut bloquer les sessions :) 

Si jamais tu es avec un php V 4.0.6 ou plus ancien utilise : $HTTP_SESSION_VARS.

Sinon verifies les parametres de php aupres de ton hebergeur.

Cord. S62.

En faite le problème c'est que j'utilise un include. Quand j'affiche le $_SESSION['pseudo'] dans la âge, sa marche, mais quand j'utilise le $_SESSION['pseudo'] dans la partie qui est inclué, ben la le $_SESSION ne vaut plus rien! Est-ce que je doit faire quelque chose de spécial dans la partie include pour que sa marche. pour infos, ma partie include est dans un dossier diférent que la page.

Sa gene en rien que le session_start() ne soit pas sur la premiere ligne. Il peut etre nimporte ou ten que tu na pas daffichage.

Sa met deja arriver de faire des operations avant le session_start() et sa a jamais planter.

<?php

session_start();

include("xxxx");

?>

code_pour_le_formulaire_de_saisie

<?php

$_SESSION['pseudo'] = $_POST['pseudo'];

?>


si tu fais ton echo avant d'avoir mit le contenu de la variable, forcément ça te retournera jamais rien...

3psilon : ça existe aussi, mais c'est pas obligé.

Citation :

sundevil a écrit :
$_SESSION['pseudo']=$pseudo;
echo ''.$_SESSION['pseudo'].'';

Il attribut la valeur et il fait un echo oui, je voit pas le probleme.


Regarde bien... Il définit $pseudo juste après le début de la session.

Ceci dit, j'admet que si le principal intéressé venait donner un peu plus de précisions, ça aiderait grandement. Parce qu'en fait son code est juste et faux à la fois selon d'où on regarde.

euh ... !
Si j'ai bien compris.. ta ton session_start dans ta page (index.php par exemple) et t'accède nikel aux variables de ta session.
puis tu fais un include d'une autre page (menu.php par exemple) et dans cette page menu tu as a nouveau un session_start mais tu ne peux plus accéder aux variables de session.. c ca ?
Tu n'as aucun message d'erreur sur ta page ?
As-tu essayé de mettre tes variables de session dans une variable $var et de les rapeller dans ta page menu ?
dis moi si g pas compris le probleme..

voici le code complet:
Page principale:
  1. <? session_start(); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  3. <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" >
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  6. <title>Index de <?php echo ''.$_SESSION['pseudo'].' > ';?>Monsite.</title>
  7. <link rel="stylesheet" media="screen" type="text/css" title="feuile de style de Always together" href="<a href="http://monsite.free.fr/CSS/styles.css" target="_blank">http://monsite.free.fr/CSS/styles.css</a>" />
  8. </head>
  9. <body>
  10. <? include ('<a href="http://monsite.free.fr/include/entete.php" target="_blank">http://monsite.free.fr/include/entete.php</a>'); ?>
  11. <!-- DEBUT MENU -->
  12. <? include ('<a href="http://monsite.free.fr/include/menu_membre.php" target="_blank">http://monsite.free.fr/include/menu_membre.php</a>'); ?>
  13. <!-- FIN MENU -->
  14. </td>
  15. <td width="563" id="centre">
  16. <!-- DEBUT CONTENU -->
  17. <?php
  18. if (!isset($_SESSION['pseudo']))
  19. {
  20. include ('<a href="http://monsite.free.fr/include/erreur.php" target="_blank">http://monsite.free.fr/include/erreur.php</a>');
  21. }
  22. else
  23. {
  24. echo 'blablabla';
  25. ......

Le menu_membre qui est include:
  1. <? session_start(); ?>
  2. <!--Menu membre-->
  3. <p><a .......</p>
  4. <p>__________</p>
  5. <p><? if(!isset($_SESSION["pseudo"]))
  6. {
  7. echo 'Vous n\'ètes pas connecté';
  8. }
  9. else
  10. {
  11. echo' •connecter en tant que: '.$_SESSION['pseudo'].'
  12.  
  13. <p>____________</p>
  14. <p><a href="controle.php?system=deconnection">•Se déconnecter</a>';
  15. }?></p>
  16. <p>__________</p>
  17. <p><a ...</p>

Comme vous le voyer, j'utilise $_SESSION pour savoir si la personne est identifié, dans la page principal, sa marche, sa affiche la bonne page si la personne est identifié, par contre, dans le menu, sa me met toujours "vous n'ètes pas connécté" meme quand je suis identifié!!!
Et oui j'ai bien creer le dossier sessions. Car avant j'avait un autre site qui avait un peut pres la meme base et qui marchait parfaitement!!! C'est ca qu'est grave!!! :-(

Effectivement, cest bizarre.

Quand tu fait
Citation :
<title>Index de <?php echo ''.$_SESSION['pseudo'].' > ';?>Monsite.</title>


Est ce que tu as quelque chose. Si oui fait un test simple.
Tu copie colle ton menu_membre.php a la place de la ou tu linclude et dit nous si sa marche.

bah sa a pas changer beaucoup:
  1. <? session_start(); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  3. <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" >
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  6. <title>Index de <?php echo ''.$_SESSION['pseudo'].' > ';?>monsite.</title>
  7. <link rel="stylesheet" media="screen" type="text/css" title="feuile de style de Always together" href="<a href="http://monsite.free.fr/CSS/styles.css" target="_blank">http://monsite.free.fr/CSS/styles.css</a>" />
  8. </head>
  9. <body>
  10. <? include ('<a href="http://monsite.free.fr/include/entete.php" target="_blank">http://monsite.free.fr/include/entete.php</a>'); ?>
  11. <!-- DEBUT MENU -->
  12. <!--Menu membre-->
  13. <p><a mes liens.....</p>
  14. <p>__________</p>
  15. <p><? if(!isset($_SESSION["pseudo"]))
  16. {
  17. echo 'Vous n\'ètes pas connecté';
  18. }
  19. else
  20. {
  21. echo' •connecter en tant que: '.$_SESSION['pseudo'].'
  22.  
  23. <p>____________</p>
  24. <p><a href="controle.php?system=deconnection">•Se déconnecter</a>';
  25. }?></p>
  26. <p>__________</p>
  27. <p><a autres liens....</a></p>
  28.  
  29. <!-- FIN MENU -->
  30. ....suite du code, rien de spécial...

Bah je suis chez Free, donc normalement y a pas trop de problème, et si il y avait des problèmes, je serai pas le seul a poster! (enfin je pense)

Ok la sa devient vraiment chelou. Une fois jai eut une erreur mystique avec les sessions.

Dans aucune page je pouvai utiliser une variable qui avait le meme nom que celle qui mavait servit a attribuer le $_SESSION.

Je mexplique:

si je faisai:

$_SESSION['login'] = $login;

et que ailleur dans une autre page je faisai:

$login = "a";

sa me niquer mon $_SESSION, je sais pas pk mais essaye de voir si sa peut pas venir de la.

Met un nom de ouf pour ta variable dattribution genre:

$_SESSION['login'] = $jdfjsjhfkhfkjsdhfksfh;

et utilise la nul part ailleur.

Je pense pas que sa vienne de sa mais on sais jamais.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde