|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
BatMats Nouveau WRInaute
Inscrit le: 29 Aoû 2003 Messages: 12 Localisation: Ile de France
|
Posté le : Mer Oct 15, 2003 19:10 Sujet du message: 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 :
| Citation: |
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 :
| Citation: |
<?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. (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. |
|
| |
|
 |
pggv WRInaute impliqué

Inscrit le: 04 Juin 2003 Messages: 285 Localisation: Lyon - Gerland
|
Posté le : Mer Oct 15, 2003 19:34 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
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 |
|
| |
|
 |
WebRankInfo Administrateur du site

Inscrit le: 19 Avr 2002 Messages: 13854 Localisation: Toulouse
|
Posté le : Mer Oct 15, 2003 19:48 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
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... |
|
| |
|
 |
Olivier Nouveau WRInaute
Inscrit le: 02 Mar 2003 Messages: 47
|
Posté le : Mer Oct 15, 2003 20:01 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
bonjour a tous
pour info depuis php 4.2 la norme est la suivante $_SERVER["....."]
donc c'est normal
++ |
|
| |
|
 |
WebRankInfo Administrateur du site

Inscrit le: 19 Avr 2002 Messages: 13854 Localisation: Toulouse
|
Posté le : Mer Oct 15, 2003 20:04 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
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 |
|
| |
|
 |
George Abitbol WRInaute accro

Inscrit le: 06 Juin 2003 Messages: 1922
|
Posté le : Mer Oct 15, 2003 21:20 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
Et avec un truc dans ce style ?
| Code: |
<?php
if (isset($_SERVER)) {
$servertab = $_SERVER;
}
else {
$servertab = $HTTP_SERVER_VARS;
}
?>
|
En utilisant ensuite $servertab à la place.
Fred |
|
| |
|
 |
Invité
|
Posté le : Mer Oct 15, 2003 21:45 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
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 :
| Code: |
<?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 . |
|
| |
|
 |
BatMats Nouveau WRInaute
Inscrit le: 29 Aoû 2003 Messages: 12 Localisation: Ile de France
|
Posté le : Mer Oct 15, 2003 22:46 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
Ca veut dire que pour que ton code soit portable tu dois inclure ce bout de code pour chaque pge php ?  |
|
| |
|
 |
George Abitbol WRInaute accro

Inscrit le: 06 Juin 2003 Messages: 1922
|
Posté le : Mer Oct 15, 2003 22:53 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
| 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

Inscrit le: 19 Avr 2002 Messages: 13854 Localisation: Toulouse
|
Posté le : Mer Oct 15, 2003 23:16 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
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 ? |
|
| |
|
 |
Invité
|
Posté le : Jeu Oct 16, 2003 2:48 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
Attention, la variable _SERVER["DOCUMENT_ROOT"] représente la racine par défaut définie dans le httpd.conf d'Apache.
| Code: |
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: |
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é
|
Posté le : Jeu Oct 16, 2003 2:52 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
Ah, un truc, afin de connaitre toutes les variables PHP, placer sur son site une page contenant le code suivant:
| Code: |
<?php
phpinfo();
?>
|
et tester...  |
|
| |
|
 |
BatMats Nouveau WRInaute
Inscrit le: 29 Aoû 2003 Messages: 12 Localisation: Ile de France
|
Posté le : Jeu Oct 16, 2003 10:02 Sujet du message: Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par |
|
|
| Phpinfo() ne mentionne la variable _ENV["DOCUMENT_ROOT"] nulle part chez moi ! |
|
| |
|
 |
pggv WRInaute impliqué

Inscrit le: 04 Juin 2003 Messages: 285 Localisation: Lyon - Gerland
|
|
| |
|
 |
| |
|
|