Erreur php bizarres

9 réponses
AuteurMessage

mirage |
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 27/05/2005 à 11:15

Mon errorlog php s'est rempli cette nuit de façon étrange avec des milliers de lignes du style :

[26-May-2005 20:25:34] PHP Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
[26-May-2005 20:26:39] PHP Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
[26-May-2005 20:27:57] PHP Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
[26-May-2005 20:28:39] PHP Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Je n'ai rien trouvé sur Google à ce sujet et ça me dit rien du tout, surtout que j'ai pas touché aux sessions hier et ça a débuté à 20h25 environ...

A cette heure (et depuis 6h, rotation des logs), je n'ai plus d'erreurs de ce type...

Une idée/piste ?

Fred | Frédéric
Modérateur

Photo de Fred

Inscrit le : 09/05/2005

# Le 27/05/2005 à 11:22

Tu utilises session_register() ou $_SESSION ?

"Le bois ne rend pas les coups"

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 27/05/2005 à 11:49

$_SESSION

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 02/10/2009 à 13:32

un très vieux déterrage de topic, mais j'ai le même soucis et je n'ai pas de solution.
Avais-tu trouvé la solution mirage ?

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 02/10/2009 à 13:37

Il me semble que c'est une combinaison de choses, du genre utilisation avec les sessions d'une variable globale non initialisée qui aurait le même nom qu'un des paramètres de l'URL.
C'est assez tordu si j'ai bonne mémoire, et s'était sensé détecté des problèmes suite à la désactivation du register_globals.

Généralement la solution consiste à désactiver session.bug_compat_warn comme indiqué.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 02/10/2009 à 13:45

Ok thx, je vais voir si ils peuvent le faire

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 03/10/2009 à 12:28

tonguide a dit :
un très vieux déterrage de topic, mais j'ai le même soucis et je n'ai pas de solution.
Avais-tu trouvé la solution mirage ?

C'est vieux et je n'en ai plus le souvenir, désolé.

koreth | Sébastien
Membre

Photo de koreth

Inscrit le : 17/09/2009

# Le 03/10/2009 à 23:01

Salut,

PHP indique que tu déclare/init une variable de session globale alors que global_register est desactivé.

Pour rappel, register_global te permet de faire par exemple "if $variable==2", ce qui va faire que PHP va regarder :
- si $variable existe
- sinon, si $_GET['variable'] existe
- sinon, si $_POST['variable'] existe
- sinon, si $_COOKIES['variable'] existe
- sinon, si $_SESSION['variable'] existe
- sinon, il va te dire que $variable existe pas.

Avec certaines versions de PHP, on pouvait initialiser une session via un bug : si tu écrit une variable dans $_SESSION sans avoir lancé un session_start(), ça te lance une session, et c'est devenu illégal par la suite. Je pense que ces lignes viennent de là.

En somme, je te conseille de ne pas désactiver le warning mais plutôt de vérifier :
1 - que ton code relatif aux session est légal (d'abord session_start(), ensuite le travail)
2 - que ton code relatif aux variables ne se base pas sur le mécanisme du register_global (qu'il ne faut SURTOUT pas activer)

Sébastien

Sébastien BAUDRU, CEO DRASTIC
http://www.drastic-securite.comOuvrir dans une nouvelle fenetre

ViadeoOuvrir dans une nouvelle fenetre LinkedInOuvrir dans une nouvelle fenetre FacebookOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 04/10/2009 à 12:02

Je viens de trouver, Bool qui a raison ;)

Une variable de session avait le même nom que la variable transmise en get. ($_SESSION['variable1'] > $_GET['variable1'] > erreur).
Ce qui est, je trouve, assez stupide comme erreur, vu que register_global est à OFF, donc aucune raison qu'il y ait un trou de sécurité ?

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 04/10/2009 à 12:11

Le test a été mis en place au début de la désactivation du register_global, à l'époque il pouvait être justifié, mais maintenant il n'a plus tellement de sens. Mais je ne me souviens plus exactement de ce qui le déclenche.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 11/05/2024 10:51:37 | Généré en 92.85ms | Contacts | Mentions légales |