|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2002 Messages : 91 ![]() |
Bonjour,
Je viens d'installer easyphp chez moi et tente de monter un site web hébergé sur mon pc. Je voudrais utiliser les sessions, mais j'ai le message d'erreur suivant : Citation:
J'ai bien renseigné mon chemin dans le PHP.ini pour sauvegarder les fichiers de sessions. Les variables globales sont à On (Off par défaut) mais je ne comprends pas cette erreur. Pourquoi cette variable n'existe pas ? J'exécute le script suivant sur chaque page pour vérifier si l'utilsateur peut ou non la consulter : Code :
|
|||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
Salut,
il me semble que cette variable n'est renseignée que si le navigateur n'accepte pas les cookies, donc ajoute un isset() pour tester son existence. Je n'ai pas réussi a trouver la doc a la sujet donc ce n'est pas sur à 100%, reteste un coup en désactivant les cookies de ton navigateur. @+
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français. Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP. |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Je ne vois vraiment pas l'utilité de tes 5 premières lignes.
Si tu souhaites juste verifier que la session existe bien, ta seconde condition suffit. Si tu souhaites vérifier que la variable PHPSID est bien présente dans l'url (même si j'ai du mal à voir l'interet de faire une telle chose...), il faudra utiliser isset(). De plus, regarde comment est configuré register_global sur ton serveur : s'il est à off, il faudra utiliser $_GET['PHPSESSID']. |
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() Inscription : août 2006 Messages : 943 ![]() |
Le PHPSSID est la constante contenant ton identifiant de SESSION.
Ce qu'il faut savoir, c'est que dans les dernières versions de PHP, la transmission automatique de l'ID dans les URL contenu dans les liens interne au site n'est pas activé. (dans le PHP.ini, c'est la variable session.use_trans_sid qu'il faut regarder, et pas le register_global !!!) Donc, quand ton script te rejette l'erreur que le PHPSSID n'est pas defini, c'est que dans les liens internes, il ne reconnais pas le SID de la session ouverte !!! Méthode : soit mettre dans un PHP.ini le use_trans_id, ou bien mettre, à la fin de chacun de tes liens interne de ton site, la valeur du SID à la fin (php le reconnait automatiquement) exemple : Code :
pour plus d'info, va sur http://fr2.php.net/manual/fr/ref.session.php
__________________
Veni Vidi Vici ------------------------- Mes articles : developpez.com ou bien vbview.net ------------------------- Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!! Et aussi : --> pear_manual_fr.chm!!! Ou encore : --> Les tutoriaux & cours PHP de Développez.com ------------------------- |
||
|
|
00
|
|
|
#5 | |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Citation:
Aucune variable $PHPSID ne sera créée, à moins que le register_global soit à on (dans ce cas, elle sera égale à GET['PHPSID'], POST['PHPSID'] ou COOKIE['PHPSID'] selon la méthode choisie. Pour lire l'identifiant, il peut utiliser session_id() (après session_start, pour la lecture). Mais dans tous les cas, je reste persuadé que cette première condition est inutile... Si la session n'existe pas, $_SESSION['identifiant'] n'existe forcément pas... Donc ta seconde condition fait redondance avec la première. Sinon, viviboss, vu qu'il a activé les cookies, le problème ne semble pas provenir de la transmission de l'id de session. |
|
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Inscription : août 2006 Messages : 943 ![]() |
De toute les facons, il ne faut pas utiliser les variable_global à on.
Quant au SID, il peut y acceder tout simplement par.... SID, puisque c'est une constante. (bien évidemment, il est transmit par POST ou GET, mais de toute les facon il n'y a pas besoin d'y acceder, puisque PHP le gère tout seul !!!!) Pour verifier qu'une session existe, c'est clair que je pense qu'il n'y a que le isset()..... ou alors session_is_registred. Bref, oui sa variable n'est pas bien definit. A la limite : if(isset(SID)).....(et encore, je suis pas sur que ca marche.....)
__________________
Veni Vidi Vici ------------------------- Mes articles : developpez.com ou bien vbview.net ------------------------- Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!! Et aussi : --> pear_manual_fr.chm!!! Ou encore : --> Les tutoriaux & cours PHP de Développez.com ------------------------- |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com