Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2007, 11h40   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 2
Points : 0
Points : 0
Par défaut $_server['document_root'] dans un lien

Bonjour,
Je viens de remarquer une particularité de la variable $_SERVER['DOCUMENT_ROOT']
Elle fonctionne très bien pour inclure un fichier:
Code :
require($_SERVER['DOCUMENT_ROOT']."/repertoire1/repertoire2/fichier.php")
Par contre elle ne marche pas du tout lorsqu'elle est incluse dans un lien:
Code :
1
2
$lien=$_SERVER['DOCUMENT_ROOT']."/repertoire1/repertoire2/fichier.php";
echo "<a href='".$lien."'>TEXTE DU LIEN</a>";
Quelqu'un a-t-il expérimenté et contourné cette difficulté?
Avez-vous une autre solution pour créer un lien vers un chemin absolu dans un site?
Merci de vos réponses, toutes les pistes sont bonnes à prendre.
nolmel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 13h27   #2
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Citation:
Envoyé par nolmel
Bonjour,
Je viens de remarquer une particularité de la variable $_SERVER['DOCUMENT_ROOT']
Elle fonctionne très bien pour inclure un fichier:
require($_SERVER['DOCUMENT_ROOT']."/repertoire1/repertoire2/fichier.php")
Par contre elle ne marche pas du tout lorsqu'elle est incluse dans un lien:
$lien=$_SERVER['DOCUMENT_ROOT']."/repertoire1/repertoire2/fichier.php";
echo "<a href='".$lien."'>TEXTE DU LIEN</a>";

Quelqu'un a-t-il expérimenté et contourné cette difficulté?
Avez-vous une autre solution pour créer un lien vers un chemin absolu dans un site?
Merci de vos réponses, toutes les pistes sont bonnes à prendre.

Salut, si tu as copié-collé ton code dans ton post, il y a une erreur... (cf. rouge)

essayes ca...
Code :
1
2
3
4
5
6
 
echo "<a href=$lien>TEXTE DU LIEN</a>";
 
OU 
 
echo "<a href=\"$lien\">TEXTE DU LIEN</a>";
++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 13h47   #3
Invité de passage
 
Inscription : janvier 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 2
Points : 0
Points : 0
Salut, merci de t'intéresser au problème.
Ce n'était malheureusement pas du copier-coller, l'erreur ne vient donc pas de là...snif. Mais si tu as d'autres pistes, je suis preneur !!
Encore merci !!
nolmel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 21h27   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Je ne comprends pas ton problème, si tu utilises la même variable aux deux endroits et que tu ne la modifie pas, tu auras la même valeur à l'interieur.
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 23h36   #5
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut C'est évident

Code :
1
2
3
4
<?php
$lien=$_SERVER['DOCUMENT_ROOT']."/test2.php";
echo $lien;
?>
Ce qui donne dans le navigateur:
C:/Program Files/xampp/htdocs/test2.php

Et donc tu cherches à faire passer au serveur un lien vers une arborescence qu'il ne connait pas car le serveur a son fichier root à 'localhost' et non à 'C:'

Toujours se rappeler que PHP ne fonctionne que côté serveur (excepté évidemment la ligne de commande pour PHP CLI)
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2007, 11h35   #6
Membre actif
 
Inscription : août 2002
Messages : 194
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 194
Points : 194
Points : 194
Envoyer un message via MSN à Léortien
exactement
il faut voir qu'il y a deux moyens d'indiquer la position (absolue) d'un fichier

soit l'arborescence sur disque (c:\rep_site_alpha\rep1\rep2 ou /rep_site_alpha/re1/rep2 pour linux)
soit l'url (http//:nom_du_site/rep1/rep2)

et même si on désigne le même fichier ça ne s'utilise pas aux mêmes endroits.

et document root correspond à l'emplacement de la racine de ton site sur l'arborescence sur le serveur (regarde comment afficher les info php tu comprendras mieux... y'a php_info() qui doit exister )


Essaye plutot
$lien= "http://".$HTTP_SERVER_VARS["HTTP_HOST"]."/repertoire1/repertoire2/fichier.php";


si tu veux donner la position à un utilisateur du site (tel que sur un lien)
tu as besoin de l'url (le truc en http//:.....)
et donc il faut chercher la variable php qui correspond (je te propose une idée mais y'a surement une meilleure variable ou obtenir le http//:adresse_de_ton_site
Léortien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 01h29   #7
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut ouiiiiii

Alors là je dis chapeau bas pour l'explication

Bravo!!
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h40.


 
 
 
 
Partenaires

Hébergement Web