Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par
14 messages
• Page 1 sur 1
- BatMats
- Nouveau WRInaute

- Messages: 12
- Inscription: 29 Aoû 2003
Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par
Salut,
J'ai pas mal galèré avec RobotStats....
Le message d'erreur était le suivant :
J'ai testé la variable $DOCUMENT_ROOT avec :
Et $DOCUMENT_ROOT ne renvoie rien dans mon cas, d'ailleurs "phpinfo()" n'en parle pas, il faut alors remplacer $DOCUMENT_ROOT par $_SERVER["DOCUMENT_ROOT"] dans le code inséré sur les pages HTML et dans le fichier robotstats.inc.php.
Est-ce normal doc ? Je dis des conneries ou pas ?
Ca vient d'Apache 2.0 à votre avis ou plutôt de ma version ou install PHP ?
En tout cas maintenant ça marche et c bien cool.
(Robot de test Ok !)
Sauf le graphe...
sic je suis passé à RoboStats et Mandrake 9.1/Apache 2.0 et j'ai même pas les graphs. je suis un peu deg. Vs z'avez une idée : LibGD installée et visible ds phpinfo() !
Sinon j'aimerais bien un peu de feedback là dessus par pure curiosité et pour savoir ce que mon serveur peut bien avoir de particulier pour fonctionner de cette manière, car je n'ai vu aucun post la dessus...
Merci et bonne continuation.
J'ai pas mal galèré avec RobotStats....
Le message d'erreur était le suivant :
Warning: main(/robotstats/robotstats.inc.php) [function.main]: failed to create stream: No such file or directory in /var/www/html/index.htm on line 285
Warning: main() [function.main]: Failed opening '/robotstats/robotstats.inc.php' for inclusion (include_path='.:/usr/share/pear') in /var/www/html/index.htm on line 285
J'ai testé la variable $DOCUMENT_ROOT avec :
<?php
echo ($DOCUMENT_ROOT.'/robotstats/robotstats.inc.php');
?>
Et $DOCUMENT_ROOT ne renvoie rien dans mon cas, d'ailleurs "phpinfo()" n'en parle pas, il faut alors remplacer $DOCUMENT_ROOT par $_SERVER["DOCUMENT_ROOT"] dans le code inséré sur les pages HTML et dans le fichier robotstats.inc.php.
Est-ce normal doc ? Je dis des conneries ou pas ?
Ca vient d'Apache 2.0 à votre avis ou plutôt de ma version ou install PHP ?
En tout cas maintenant ça marche et c bien cool.
Sauf le graphe...
Sinon j'aimerais bien un peu de feedback là dessus par pure curiosité et pour savoir ce que mon serveur peut bien avoir de particulier pour fonctionner de cette manière, car je n'ai vu aucun post la dessus...
Merci et bonne continuation.
- pggv
- WRInaute occasionnel

- Messages: 301
- Inscription: 4 Juin 2003
Moi c'est pareil impossible de faire fonctionner le graph, et comme je n'y connait rien je m'en passe. L'important c'est de pouvoir constater le passage des robots et puis je ne désepère pas, notre grand spécialiste va bien trouver la solution pour régler ce problème.
Paul
Paul
-

WebRankInfo - Administrateur du site

- Messages: 19415
- Inscription: 19 Avr 2002
apparemment la variable $DOCUMENT_ROOT n'est plus accessible de cette façon mais via $_SERVER["DOCUMENT_ROOT"] ?
si ça se confirme, il faudra que je mette à jour l'appli. je vais me renseigner...
si ça se confirme, il faudra que je mette à jour l'appli. je vais me renseigner...
-

WebRankInfo - Administrateur du site

- Messages: 19415
- Inscription: 19 Avr 2002
non en fait c'est depuis la 4.1.0 semble-t-il
mais on ne peut pas être sûr que $_SERVER["DOCUMENT_ROOT"] existe sur tous les serveurs...
il faudrait trouver un système qui marche partout, quitte à devoir écrire un répertoire en dur à un seul endroit, dans le fichier de config
mais on ne peut pas être sûr que $_SERVER["DOCUMENT_ROOT"] existe sur tous les serveurs...
il faudrait trouver un système qui marche partout, quitte à devoir écrire un répertoire en dur à un seul endroit, dans le fichier de config
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Et avec un truc dans ce style ?
En utilisant ensuite $servertab à la place.
Fred
- Code: Tout sélectionner
<?php
if (isset($_SERVER)) {
$servertab = $_SERVER;
}
else {
$servertab = $HTTP_SERVER_VARS;
}
?>
En utilisant ensuite $servertab à la place.
Fred
- Invité
Effectivement depuis la 4.1, toutes les variables php ont changé. Pour fonctionner avec n'importe quelle version de php, il faut inclure le code suivant :
... et changer toutes les variables dans son code
.
- Code: Tout sélectionner
<?php
if(!isset($_SERVER))
{
$_SERVER = $HTTP_SERVER_VARS;
$_ENV = $HTTP_ENV_VARS;
$_COOKIE = $HTTP_COOKIE_VARS;
$_GET = $HTTP_GET_VARS;
$_POST = $HTTP_POST_VARS;
$_FILES = $HTTP_POST_FILES;
$_SESSION = $HTTP_SESSION_VARS;
$_REQUEST = $_POST;
for($i=0;$i<count($_GET);$i++)
{
$v=each($_GET);
$_REQUEST[$v[key]]=$v[value];
}
unset($i);
unset($v);
}
?>
... et changer toutes les variables dans son code
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
BatMats a écrit:Ca veut dire que pour que ton code soit portable tu dois inclure ce bout de code pour chaque pge php ?
Ouaip, un ptit coup de require et le tour est joué.
N'oublions pas que cette histoire de register globals et de tableaux superglobaux ne tombe pas non plus d'un coup, ça fait un moment qu'on est prévenu et qu'on a pu modifier son code en conséquence.
Fred
-

WebRankInfo - Administrateur du site

- Messages: 19415
- Inscription: 19 Avr 2002
j'ai déjà utilisé un système de ce genre, mais pas pour DOCUMENT_ROOT
ma question est surtout comment trouver un système qui fonctionne meme si DOCUMENT_ROOT n'est pas disponible ?
ma question est surtout comment trouver un système qui fonctionne meme si DOCUMENT_ROOT n'est pas disponible ?
- Invité
Attention, la variable _SERVER["DOCUMENT_ROOT"] représente la racine par défaut définie dans le httpd.conf d'Apache.
Dans le cas ou votre site est placé sous ce répertoire (accessible par http://localhost), la variable renverra bien "C:/Apache2/htdocs".
Or, lors de l'utilisation d'alias dans le httpd.conf,
un acces sur une page à l'URL http://localhost/myweb renverra la variable _SERVER["DOCUMENT_ROOT"] renseigné également avec "C:/Apache2/htdocs".
De plus si la définition DocumentRoot est omise dans le httpd.conf (aucun accés possible à l'URL http://localhost), la variable est remplie avec la valeur par défaut (/apache/htdocs).
Une solution pour connaitre le répertoire racine de son site serait soit de récupérer la variable _ENV["DOCUMENT_ROOT"] (si définie), soit de récupérer la variable _SERVER["SCRIPT_FILENAME"] et dans extraire le chemin (pas trés jolie mais...).
- Code: Tout sélectionner
DocumentRoot "C:/Apache2/htdocs"
Dans le cas ou votre site est placé sous ce répertoire (accessible par http://localhost), la variable renverra bien "C:/Apache2/htdocs".
Or, lors de l'utilisation d'alias dans le httpd.conf,
- Code: Tout sélectionner
Alias /myweb "D:/myweb"
un acces sur une page à l'URL http://localhost/myweb renverra la variable _SERVER["DOCUMENT_ROOT"] renseigné également avec "C:/Apache2/htdocs".
De plus si la définition DocumentRoot est omise dans le httpd.conf (aucun accés possible à l'URL http://localhost), la variable est remplie avec la valeur par défaut (/apache/htdocs).
Une solution pour connaitre le répertoire racine de son site serait soit de récupérer la variable _ENV["DOCUMENT_ROOT"] (si définie), soit de récupérer la variable _SERVER["SCRIPT_FILENAME"] et dans extraire le chemin (pas trés jolie mais...).
- Invité
Ah, un truc, afin de connaitre toutes les variables PHP, placer sur son site une page contenant le code suivant:
et tester...
- Code: Tout sélectionner
<?php
phpinfo();
?>
et tester...
- pggv
- WRInaute occasionnel

- Messages: 301
- Inscription: 4 Juin 2003
Pour le problème des graphs et robot test ce post peût vous interesser
http://www.webrankinfo.com/forums/viewtopic_5453.htm
http://www.webrankinfo.com/forums/viewtopic_5453.htm
14 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Remplacer VIRTUALHOST dans HTTDP.CONF de Apache
- Remplacer too.php par tutu.php avec ajout 1 parametre en plu
- Remplacer un switch php
- Remplacer un bout de chaine php
- Remplacer un résultat par un autre en php
- Rechercher/remplacer avec php+mySQL
- Remplacer 60 pages html en 1 page php
- fonction pour remplacer des strings (php)
- Apache et PHP
- Editer fichier csv avec php: recherche/remplacer
- Suite de l'article sur le fichier .htaccess : l'URL rewriting - 16-01-2003
- La calculatrice de Google - 12-09-2003
- X-Robots-Tag : directive pour bloquer les robots dans l'entête HTTP : explications - 13-12-2007
- Article sur le fichier .htaccess - 11-01-2003
- Document confidentiel sur Google et la vie privée - 10-08-2010
- Séminaire URL Rewriting et sites dynamiques - 04-05-2006
- Google Presently : le concurrent de Powerpoint - 12-02-2007
- Google s'empare de Writely, un traitement de texte en ligne - 09-03-2006
Consultez la description détaillée des produits ou services de Google suivants : Google Writely
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
