J'observe une différence de comportement entre le serveur local / WAMP et mon serveur distant / Free.
Mon code est le suivant:
<?php
session_start();
$id_user = $_SESSION['id_user'];
echo $id_user; (il affiche 23 par exemple, tout va bien)
$id_user = 0;
echo $id_user; (il affiche 0, tout va toujours bien)
require '../../includes/toto.php';
?>
la premère instruction du fichier toto.php est echo $_SESSION['id_user'];
-> sous le serveur local / WAMP, il m'affiche 23, et ça me semble normal -> sous le serveur distant / Free, il m'affiche 0, et là je ne comprends plus!
Est-ce que les spécialistes de PHP et de WAMP on une explication à cela?
Merci de vos lumières et bonne soirée.
Message édité (26-09-2006 08:17)
Re: différence de comportement wamp / serveur free
Sans réponse à mon souci, je me permets de reposer la question...
Est-ce que ceci n'est pas reproductible ailleurs? Est-ce que personne n'a d'idée? Est-ce que les développeur de WAMP sont sur l'affaire? Est-ce que ça n'inspire rien du tout? Est-ce que j'ai mal expliqué mon problème? Est-ce que...
Bonne journée et à bientôt.
Re: différence de comportement wamp / serveur free
Oui, c'était fait exprès. Je faisais la différence entre $id_user et $_SESSION['id_user'] qui pour moi sont deux variables différentes.
Sous WAMP, ça ne pose pas de problème, mais sur le serveur Free, ça me bascule $_SESSION['id_user'] à 0 sans rien demander sur cette variable de session.
Est-ce que tu crois qu'il peut y avoir un conflit sur le nom de la variable et que c'est ça qui fout la m...
Question subsidiaire: Dans ce cas, pourquoi WAMP et Free ne réagissent pas de la même manière? (Vaste problème ;-) )
Re: différence de comportement wamp / serveur free
A priori, je dirai que je n'ai pas de directive du genre: php_flag register_globals on dans un fichier .htaccess... Je ne sais pas ce que c'est ni à quoi ça sert! (je viens à peine de dépasser le stade de grand débutant en php)
Il faudra donc que j'essaye de changer le nom de mes variables pour voir si il y a conflit. Par contre, ça n'explique pas la différence de comportement entre WAMP et Free.
Je ne manquerai pas de vous tenir au courant. (Sans doute pas tout de suite car j'ai peu de temps à consacrer à la prog)
D'ici là, si il y a quelqu'un qui a une idée... je suis preneur.
Bonne journée et à très bientôt.
Re: différence de comportement wamp / serveur free
Heu, juste un truc en passant, tu as bien créé le dossier session ou sessions je ne sais plus trop, et ce afin d'activer sur free le support des variables de session comme décrit dans la faq de free
Re: différence de comportement wamp / serveur free
Comme promis, je reviens, un peu tard mais je reviens.
J'ai renommé en $id toutes mes variables $id_user pour vérifier si il y avait un conflit avec $_SESSION['id_user']... et ça marche.
Je confirme donc que sur mon serveur Free, il y a un conflit entre les variables $id_user et $_SESSION['id_user'], chose qui ne se produit pas sur le serveur WAMP.
Voilà, si ça peut faire gagner du temps aux suivants...
Re: différence de comportement wamp / serveur free
Je viens de réagir: Mes pages perso chez Free étaient en PHP 4.x Mon WAMP étant en PHP5, c'était peut-être le raison de la différence de comportement entre Free et WAMP.
J'ai pas le courage de re-modifier mon script comme à l'initial pour vérifier.
Re: différence de comportement wamp / serveur free
> Je viens de réagir: Mes pages perso chez Free étaient en PHP > 4.x > Mon WAMP étant en PHP5, c'était peut-être le raison de la > différence de comportement entre Free et WAMP.
Bonjour,
Oui chez Free :
- si vos fichiers ont l'extension ".php" ils sont traités par PHP4 avec "register_globals=on", mais aussi "safe_mode=on", plus une directive "open_basedir"... j'en passe et des meilleures...
- si vos fichiers ont l'extension ".php5" ou si vous avec un fichier ".htaccess" avec une ligne "php 1", ils sont traités par PHP5 avec "register_globals=off" et +/- la même chose pour le reste (enfin presque)...
Enfin bref la différence entre les deux et avec la config par défaut de PHP sous Wamp est énorme !
Pour le détail des différentes configs, utilisez "phpinfo()". L'idéal étant quand on développe de faire coller le plus possible sa config locale à celle de l'hébergeur. On peut très bien avoir plusieurs "php.ini" que l'on interchange ou renome en fonction de l'hébergeur ciblé.