Besoin d'un éclaicissement

[Résolu]
Signaler
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009
-
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009
-
Bonjour,

Je me suis enfin mis à fair eune page perso, et j'ai décidé de al faire en php.

J'ai donc installé EasyPHP chez moi, fait un premier jet de ce qui est la base de mon site, puis je l'ai uploadé.

Pour simplifier, disons que j'ai une page "index.php", qui lit une
éventuelle variable nommé 'pg', et qui, en fonction de la valeur de
cette variable, affiche telle ou telle page dans un de ses cadres.

Sur mon ordi, avec EasyPHP, il fallait que je teste l'existence de cette variable avec la ligne :

$SubPage=isset($_GET['pg'])? $_GET['pg']:'accueil';

Tout se passait bien jusqu'à ce que j'upload le site. Cette ligne ne marchait pas ($SubPage contenait toujours 'accueil')

il a fallu que je la remplace par:

if ($pg==null)

$SubPage='accueil';

else

$SubPage=$pg;

Par contre, cette suit ede commandes plante en local.

Je suppose que bon nombre d'entre vous vont en rire, mais j'aimerais
quand même avoir des précisions sur le pourquoi de la chose, et
surtout, quelle serait la syntaxe à mettre pour que ça marche à la fois
en local et sur le net.

Merci d'avance.

6 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Je vois : register_globals à ON, et vieille versiopn de php visiblement (ou long_arrays à ON aussi).
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009
1
Oups, désolé pour les fautes de frappe.

Petite précision:

J'envoie la valeur de 'pg' par un simple
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

soit je ne suis pas bien réveillé, soit rien ne cloche dans ta syntaxe.
Quel est ton hébergeur ?
Et si tu affiches $_GET['pg'], qu'obtiens tu ?

ps : [index.php?pg=links ...]
C'est aux normes, et ça t'évitera des emmerdes plus tard...
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009
1
Pour l'hébregeur, je suis chez Alice

pour vérifier le $_GET, voici ce que je viens de faire:



$test=$_GET['pg'];

......

<html>

<head>

<title>X@v's Web<?php print " [$test]"; ?></title>

</head>



J'obtiens comme titre : X@v's Web []

Autant dire que la variable $_GET['pg'] est vide



par contre, j'ai fait

<title>X@v's Web<?php print " [$pg]"; ?></title>

et j'obtiens bien le résultat escompté, à savoir "X@v's Web [links]" par exemple



Ce qui est vraiment bizarre, c'est que lors du premier accès à la page,
la variable $pg n'est pas définie, mais je n'ai pas de message d'erreur



Pour ce qui est des normes, je vais rajouter les guillemets pendant qu'il n'y en a pas trop à rajouter.

Merci, en tout cas.
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009
1
Je crois bien que j'ai trouvé:

avec un isset($HTTP_GET_VARS['pg']), ça marche à la fois chez moi et chez Alice.

Je croyais pourtant que c'était une syntaxe obsolète !

Si vous avez des précisions, n'hésitez pas à m'en faire part...



Merci
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009
1
Un petit coup de phpinfo() et le tour est joué (si, si, je progresse !...)



Pour ce qui est de PHP, c'est une version 4.0.5

Pour ce qui est du register_globals à ON, c'est effectivement le cas.

Pour le long_arrays, je ne sais pas (je progresse, mais doucement...)



En tout cas, merci de tes réponses, et (sûrement) à bientôt...