Rechercher : dans
Par :

[PHP]Fichier et variables de session

Dernière réponse le 22 avr 2005 à 15:39:59 Kev, le 22 avr 2005 à 11:18:50 
 Signaler ce message aux modérateurs

Bonjour,

Je suis actuellement en train de developper un site ayant un espace membres. Il y a donc une partie accesible a tous et une autre qui necessite un login et un mot de passe. La structure de mon site est la suivante : j'ai une page index.php dans laquelle j'inclus un menu et un contenu centrale donc je ne fait que une fois session_start();.

Voici mon probleme : je me connecte a l'espace membres correctement (login et mdp valide), je créé une variable de session login ($_SESSION['login']) mais des que je change de page cette variable disparait et n'est plus défini.

J'ai ete voir et j'ai fait quelques tests avec les fichiers de sessions, si je créé une variable de session dans la parite accessible a tous elle apparait bien dans le fichier par contre si je créé une variable de session quelconque (un int ou u string banal) celle ci n'apparait pas dans le fichier de session.

voila je ne sait pas trop comment regler ce probleme.

Merci d'avance pour les eventuels reponses.

Bonne journée a tous

Configuration: Windows 2000 EasyPHP 1.8

Meilleures réponses pour « [PHP]Fichier et variables de session » dans :
PHP - Les variables Voir Concept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Créer un script d'ouverture de session VoirWindows permet de définir des scripts d'ouverture de session, c'est-à-dire des scripts contenant des commandes exécutés dès qu'un utilisateur ouvre une nouvelle session. Les scripts d'ouverture de session permettant de lancer des tâches qui seront...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

kij_82, le 22 avr 2005 à 11:32:20

Oh, un amis Winbus2000, il va à combien le tiens (Bonjours harry!)
;)

) Je ferme la parenthèse sur ce dérapage : en ce qui concerne ton pb, de session :
est-ce que dans ta deuxième page, tu fais un "session_start()" au début de ton script ?
Si non, met le et essaie d'afficher ta variable enregistrée dans la page précédente.
Si oui, ben... sais pô, fô voir !
~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

2

Kev, le 22 avr 2005 à 11:34:26

J'ai fait d'autres test en créant $_SESSION['login'] = '' dans la partie accessible a tous. Jusqu'a la page de verification du login et mdp le fichier de sesion et $_SESSION['login'] existent mais des que j'arrive dans la partie membres (ou je fait un nouveau session_start() vu que ce n'est plus la meme page index.php) le fichier disparait et donc la variable en meme tps.

Répondre à Kev

3

kij_82, le 22 avr 2005 à 11:43:01

???

je te donne un exemple :
fichier fich1.php : (la ou tu met à jours ta variable de session)

<?php

session_start();

$_SESSION['coucou'] = "caca";

echo "<a href=\"fich2.php\">ici</a>";
?>

et le code de fich2.php (ton espace membre ou meme l'espace ou tout le monde peut venir :
<?php
session_start();
if(isset($_SESSION['coucou'])) {
   echo $_SESSION['coucou'];
}
else
{
   session_destroy();
   echo "pas de session en cours";
}
?>


Voilà, ton pb, si j'ai bien compris viens de la : tu ne met pas de session_start() dans les pages non membre, chose à laquelle il faut penser car si tu vas dans l'espace membre, puis dans l'espace ouvert, puis que tu revient dans l'espace membre alors la oui, tes variable de session ne seront plus valide si tu ne met pas de session_start() dans la partie commune du site.
Bon, maintenant je dit ca, mais j'ai jamais tester, mais théoriquement, ca devrait être ça je pense.

++ ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

4

Kev, le 22 avr 2005 à 14:39:48

Jai verifier mes deux pages (partie commune et partie membres) elles ont bien leur session_start() en tout debut, ainsi que tout les pages que je n'appel pas de cette façon (.../index.php?page=maPage).

j'ai integrer l'exemple que tu m'a donné dans mes pages cela marche jusqu'a l'arrivé dans la partie membres. Voici ce qu'il contient jusqu'a ce qu'il disparaisse

test|s:6:"coucou";

c'est donc normal.

Ce que je ne comprends pas c'est que le fichier de session(qui se trouve dans le repertoire defini par session_save_path, tmp de easyPHP) disparait donc est supprimé alors que si je ferme une session sans etre aller dans la partie membre les fichiers de session restent.

je crois que si je trouve pourquoi le fichier disparait j'aurai ma solution. Je vais tester en mettant session_start() dans toutes mes pages je devrait tomber sur la bonne.

Répondre à Kev

5

Kev, le 22 avr 2005 à 14:54:23

Je sais pas si sa venait de ça mais voici comment etait mon lien de deconnexion avant et apres modif

Avant modif

<a href=../index.php onKeyPress=<?php session_destroy(); ?>>Deconnexion</a>


Apres Modif
<a href=../index.php onKeyPress=<?php echo "Deconnexion"?>>Deconnexion</a>


je ne comprend pas du tout pourquoi cette modif a tout arranger.

en tout cas sa marche maintenant.

Répondre à Kev

6

kij_82, le 22 avr 2005 à 14:57:28

C'est à dire ca marche ?
Si tu veux dre par là que ta session a toujours lieu, c'est normal puisqu'elle n'est pas détruite. ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

7

Kev, le 22 avr 2005 à 15:13:38

Oui en gros c'est sa elle n'est jamais detruite. le onKeyPress<?php session_destroy(); ?> devait surement la detruire sans qu'on clique sur le lien.

j'ai rajouter aussi

if(isset($SESSION['login'])) {
unset($_SESSION['login'])
}

dans la partie commune, on sait jamais.

Répondre à Kev

8

kij_82, le 22 avr 2005 à 15:20:51

Si tu fais ca, ca veut dire que si un utilisateur membre s'est logué et qui retourne sur la zone libre, il sera délogué enqq sorte et qu'il devra se relogé s'il veut retourner sur la zone membre.. Ce n'est pas forcément judicieux, mais c'est selon ce que tu veux gérer une fois de plus. ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

9

Kev, le 22 avr 2005 à 15:24:13

Oui j'ai penser a cela alors j'ai fait que les pages accesible a tous reste accessible aux membres logués.

Répondre à Kev

10

kij_82, le 22 avr 2005 à 15:32:12

Tres bien ma fois, tu n'a plus de pb alors, c'est bon ?
~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

11

Kev, le 22 avr 2005 à 15:38:29

Oui plus pour l'instant, j'espere que sa va durer

merci bien

Répondre à Kev

12

 kij_82, le 22 avr 2005 à 15:39:59

++ ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82
Collection CommentÇaMarche.net