Les sessions se rebellent

Signaler
Messages postés
565
Date d'inscription
mercredi 19 mai 2004
Statut
Membre
Dernière intervention
30 avril 2008
-
Messages postés
565
Date d'inscription
mercredi 19 mai 2004
Statut
Membre
Dernière intervention
30 avril 2008
-
Bonjour..

J'ai un petit probleme a mater la rebelion de mes variables de session
en effet au debut elles étaient docile et fonctionnaient tres bien mais
je ne sais pourquoi depuis quelques temps , elles fonctionnes sur la
page ou la declaration a eu lieu et disparaissent quand je passe
a une autre !Les fichiers sont la mais j'ai limpression qu'un nouveau
n° de session est atribuer a chaque foi que je change de page.

Le php.ini est pourtant bien configurer.

Et ne me dite pas "tas mis session_start(); ?" parceque je ne suis pa stupide a ce point ^^
merci d'avance


Si l'informatique été de l'alcool il y aurait des genies partout

7 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

T'as mis session_start() au début de tes pages ?

...

Je plaisantais hein ;-)
Y un truc qui a changé dans ta config coïncidant avec ce petit problème ?

Personnellement, les seuls cas où j'ai vu ce genre de chose sont :
- session_start() manquant...
- register_globals à on et écrasement de variables ($_SESSION['login'] = 'bla'; $login ='bli';)
- oubli de créer le répertoire adéquat pour les sessions selon l'hébergeur

A part ça...je ne vois pas.
Tu vois le SID dans ta barre d'adresse?
Si tu fais un print_r ($_SESSION); il se passe quoi ? (sur 2 pages)
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
echo session_id();

Ca permet de savoir si ton ID de session est transféré de page en page.
Si ca n'est pas le cas ==> cookie désactivé
==> oublie de passage à l'url
==> et le reste de ce qu'a dit Malalam :)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
'lut FhX :-)



cookie désactivé ça désactive aussi côté serveur ?
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Nan. Pas du tout.

Si tu utilises session_start(); en automatique, il va te créer un cookie avec ton ID de session.
Si tu désactives les cookies, tu n'as pas gardé cet ID de session, donc à chaque nouvelle page ==> changement d'ID.
Pour te prémunir de ca, tu as une option dans ton PHP.ini, qui doit s'appeler enable_trans_sid que tu dois mettre à ON.
Et comme ca, c'est par l'intermédaire de tes URLs que ton ID de session se fait passer, et ceci automatiquement :)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Ah oui ok, exact.

T'as peut-être raison pour son problème en effet, ça y ressemble pas mal.
Messages postés
285
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
1
"T'as mis session_start() au début de tes pages ?" Trop fort

Ca peut être aussi le même problème que moi la dernière fois. C'est à
dire que tes variables pourrisse ta session pour une raison ou pour une
autre. Mais surtout parce que le nom de ta variable de session est trop
explicite (genre membre, à tout hasard ?) et que en faisant un

$membre = "truc";

Essai peut être de changer le nom de la variable tout simplement ?



Mais ce qui me fait rire c'est que le bonhomme pose un problème mais nous on en discute sans en savoir plus !
Messages postés
565
Date d'inscription
mercredi 19 mai 2004
Statut
Membre
Dernière intervention
30 avril 2008
1
print_r ($_SESSION); :

sur la page de lgin ca affiche bien les varibles definies mais dé que
je change de page meme si c'est pour revenir sur la meme ca me vide
tt(ca matribut un n° de sess a chaque changement! ca commence dailleur
a saturer mon pc ^^)

- session_start() manquant... :

non

- register_globals à on et écrasement de variables ($_SESSION['login'] = 'bla'; $login ='bli';) :

non je ne pense pas(moi stupide a ce point?)

- oubli de créer le répertoire adéquat pour les sessions selon l'hébergeur :

j'heberge en local par apache 2 et php 4 la config est impec et les fichoers de session sont créés!



echo session_id(); :

ahah ! ca affiche bien quelque chose mais lid change a chaque foi!

cookies autorisés : oui

cookies parametrés php.ini :

[Session]

; Handler used to store/retrieve data.

session.save_handler = files



; Argument passed to save_handler. In the case of files, this is the path

; where data files are stored. Note: Windows users have to change this

; variable in order to use PHP's session functions.

;session.save_path = c:/temp

session.save_path = "C:/Site/FEPEALP/Assembleur/www/tmp"

; Whether to use cookies.

session.use_cookies = 0



; This option enables administrators to make their users invulnerable to

; attacks which involve passing session ids in URLs; defaults to 0.

; session.use_only_cookies = 0



; Name of the session (used as cookie name).

session.name = PHPSESSID



; Initialize session on request startup.

session.auto_start = 0



; Lifetime in seconds of cookie or, if 0, until browser is restarted.

session.cookie_lifetime = 1800



; The path for which the cookie is valid.

session.cookie_path = "C:/Site/FEPEALP/Assembleur/www/tmp"



; The domain for which the cookie is valid.

session.cookie_domain =



; Handler used to serialize data. php is the standard serializer of PHP.

session.serialize_handler = php



; Define the probability that the 'garbage collection' process is started

; on every session initialization.

; The probability is calculated by using gc_probability/gc_divisor,

; e.g. 1/100 means there is a 1% chance that the GC process starts

; on each request.



session.gc_probability = 1

session.gc_divisor = 1000



; After this number of seconds, stored data will be seen as 'garbage' and

; cleaned up by the garbage collection process.

session.gc_maxlifetime = 1440



; PHP 4.2 and less have an undocumented feature/bug that allows you to

; to initialize a session variable in the global scope, albeit register_globals

; is disabled. PHP 4.3 and later will warn you, if this feature is used.

; You can disable the feature and the warning separately. At this time,

; the warning is only displayed, if bug_compat_42 is enabled.



session.bug_compat_42 = 0

session.bug_compat_warn = 1



; Check HTTP Referer to invalidate externally stored URLs containing ids.

; HTTP_REFERER has to contain this substring for the session to be

; considered as valid.

session.referer_check =



; How many bytes to read from the file.

session.entropy_length = 0



; Specified here to create the session id.

session.entropy_file ;session.entropy_length 16



;session.entropy_file = /dev/urandom



; Set to {nocache,private,public,} to determine HTTP caching aspects.

; or leave this empty to avoid sending anti-caching headers.

session.cache_limiter = nocache



; Document expires after n minutes.

session.cache_expire = 30



; trans sid support is disabled by default.

; Use of trans sid may risk your users security.

; Use this option with caution.

; - User may send URL contains active session ID

; to other person via. email/irc/etc.

; - URL that contains active session ID may be stored

; in publically accessible computer.

; - User may access your site with the same session ID

; always using URL stored in browser's history or bookmarks.

session.use_trans_sid = 0



; The URL rewriter will look for URLs in a defined set of HTML tags.

; form/fieldset are special; if you include them here, the rewriter will

; add a hidden field with the info which is otherwise appended

; to URLs. If you want XHTML conformity, remove the form entry.

; Note that all valid entries require a "=", even if no value follows.

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

c long je sais

bon je sais pas si t au courant Zart mais j'ai dis dan mon message que
les session etaient bien la masi que c just l'id que change




voila bonne chance !

prochain episode : "the rise of sessions : invasion"
Si l'informatique été de l'alcool il y aurait des genies partout