variables globales

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2011, 19:35

Bonjour,

Je cherche comment conserver une ou plusieurs variables dans un sites complet en PHP.
Il existe les sessions ou les cookies mais ce que je voudrais c'est conserver une variable interne sur l'intégralité de mon site.
Apparemment les variables $GLOBALS se perdent en route et je ne comprend pas pourquoi.
J'ai essayer les variables d'environnement mais pareil, elles se perdent en route.
En fait mon soucis et de garder le chemin physique de mon site, mais $_SERVER['DOCUMENT_ROOT'] n'est pas valable sur certains hebergeurs.
Eric

ViPHP
ViPHP | 5462 Messages

16 janv. 2011, 19:37

il faut mettre tes variables dans un fichier que tu chargeras a chaque page avec un include/require

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2011, 21:45

Bonsoir,

C'est justement pour faire un include/require que j'utilise cette variable $_SERVER['DOCUMENT_ROOT'].
Car ces fonctions n'acceptent pas de chemin absolu du genre include ("/admin/config.php") mais uniquement un chemin relatif ("../admin/config.php") ce qui me gène dans des scripts qui se lancent de partout.
Alors j'avais pris cette habitude include ($_SERVER['DOCUMENT_ROOT']."/admin/config.php") jusqu'à ce que je tombe sur un hébergeur qui ne possède pas cette variable que je voulais garder sur l'ensemble de mon site.

La question juste serait comment remonter à la racine de mon site à partir d'un endroit quelconque sans pouvoir utiliser le chemin absolu à cause de ces include/require qui ne les supportent pas.

Merci
Eric

ViPHP
ViPHP | 5462 Messages

16 janv. 2011, 22:32

le chemin absolue est par rapport au système et non pas au serveur, donc /admin/config.php, ira chercher sur la machine dans le dossier racine /admin config.php

ViPHP
xTG
ViPHP | 7331 Messages

16 janv. 2011, 23:39

Sauf si la machine est sous windows (problème que je rencontre sur mon local).
Sinon tu peux utiliser d'autres variables serveur.
$_SERVER['REQUEST_URL'] par exemple, avec un peu de traitement tu peux éliminer le nom de domaine et compter le nombre de répertoires jusqu'à la racine.

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2011, 13:12

le chemin absolue est par rapport au système et non pas au serveur, donc /admin/config.php, ira chercher sur la machine dans le dossier racine /admin config.php
Oui mais pas dans un include ou un require qui ne veulent pas de chemin absolu.

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2011, 13:15

Sauf si la machine est sous windows (problème que je rencontre sur mon local).
Sinon tu peux utiliser d'autres variables serveur.
$_SERVER['REQUEST_URL'] par exemple, avec un peu de traitement tu peux éliminer le nom de domaine et compter le nombre de répertoires jusqu'à la racine.
Le problème n'est pas de trouver le chemin depuis la racine, mais de le conserver dans une variable accessible de partout.
C'est mon vrai problème, alors l'écrire en session ou en cookies, je trouve pas ça très propre.

Eric

ViPHP
xTG
ViPHP | 7331 Messages

17 janv. 2011, 16:02

Je ne parlais pas d'enregistrement mais de calcul sur chaque script.
C'est certes plus lourd à gérer mais au moins tu es sûr à 100% de la variable.