Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 26/07/2011, 11h02   #1
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 8
Points : 1
Points : 1
Par défaut HTML & PHP : Problème de gestion des liens

Bonjour,

J'ai un petit souci concernant l'insertion de code php dans du html pour les liens (feuille de style).

Mon arborescence est la suivante :
• Index.php
• /Autres Pages
• Page 2.php
• /Styles
• Style.css
J'inclus dans chaque page un fichier qui se présente comme suite :

Code :
1
2
3
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="fr" />
<link rel="stylesheet" media="screen" type="text/css" href="styles/style.css" />
J'aimerai donc que la source soit définie en absolue puisqu'elle est différente pour chaque page (je précise que je travaille en local pour l'instant). J'ai essayé de mettre :

Code :
href=<?php echo $_SERVER['DOCUMENT_ROOT'] . '/styles/style.css'; ?> ;
Je pense que je fais une faute dans la gestion des guillemets mais malgré mes différentes tentatives, je n'arrive toujours pas à résoudre ce problème.

Si quelqu'un a une idée ...

Merci par avance !
somi69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 11h29   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

si je comprends bien ton arborescence toutes tes pages sauf l'index sont dans le dossier Autres Pages.

Dans ce cas il te suffit de faire ceci pour chaque page qui sont dans ce dossier.

Code :
1
2
<link rel="stylesheet" media="screen" type="text/css" href="../styles/style.css" />
Sinon affiche nous le code source pour voir ce qui ne fonctionne pas...
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 11h36   #3
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Code :
<link type="text/css" rel="stylesheet" media="all" href="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>/styles/style.css" />
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 11h38   #4
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 8
Points : 1
Points : 1
En fait, j'ai simplifié le schéma de l'arborescence, il y a plus de dossiers et plusieurs niveaux. Je cherche à simplifier le code en utilisant la fonction include au début de mes pages pour ne pas à avoir à tout changer si je veux changer de style... (j'utilise l'exemple que tu as déjà donné, qui est en relatif alors que je cherche à avoir un lien en absolu).

En fait, mon problème se situe au niveau de l'écriture :
il n'est pas possible d'utiliser $_SERVER['DOCUMENT_ROOT] pour avoir des liens absolus dans du html ?
somi69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 11h45   #5
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par jreaux62 Voir le message
Code :
<link type="text/css" rel="stylesheet" media="all" href="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>/styles/style.css" />
Ne marche pas, c'est bizarre car le code source généré semble bon :
Code :
<link rel="stylesheet" media="screen" type="text/css" href="/Users/somi69/Sites/test/styles/style.css" />
Mais dans le navigateur, le style ne se charge pas !!
somi69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h00   #6
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
le problème reste le même, il part du fichier courant. Donc le code est correcte mais il faut que tu mettes devant des "../" pour remonter jusqu'aux bon niveau.

tu pourrais faire ceci pour chaque page:

Code :
1
2
$prec="../../"; //en fonction du nombre de dossier dont il faut remonter pour accéder au dossier principale
include (tonFichierAvecLeLinkCss);
Et dans ton fichier include mettre:

Code :
<link type="text/css" rel="stylesheet" media="all" href="<?php echo $prec; ?>styles/style.css" />
Ps: chaque ../ permet de remonter d'un seul dossier
Ps2: s'il ne faut pas remonter de dossier tu initialises $prec à vide ($prec="")
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h14   #7
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

Il y a plusieurs méthodes...

pour continuer la tienne, je ferais ceci :

Code :
<link type="text/css" rel="stylesheet" media="all" href="<?php echo substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],"/",1)); ?>/styles/style.css" />
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/07/2011, 12h16   #8
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 8
Points : 1
Points : 1
D'accord mais cela ne me simplifie pas non plus tellement la tâche... (Le code est déjà écrit avec ../).

Je voulais trouver une solution avec un chemin absolu... Je ne saisis pas trop l'explication. Il est obligatoire de saisir un chemin relatif dans ce cas là ?
Citation:
le problème reste le même, il part du fichier courant. Donc le code est correcte mais il faut que tu mettes devant des "../" pour remonter jusqu'aux bon niveau.
Je vais creuser encore un peu...
somi69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h19   #9
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par ska_root Voir le message
Bonjour,

Il y a plusieurs méthodes...

pour continuer la tienne, je ferais ceci :

Code :
<link type="text/css" rel="stylesheet" media="all" href="<?php echo substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],"/",1)); ?>/styles/style.css" />
Ca marche nickel !!!

Merci beaucoup !!!

Une dernière question histoire de me coucher moins idiot ce soir, pourquoi $_SERVER['DOCUMENT_ROOT'] ne marche pas ? Où est la différence avec le code ci-dessus ?

(Je débute...)
somi69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h36   #10
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
En fait ce qui est bizarre c'est $_SERVER['DOCUMENT_ROOT'] ne te donnes pas un chemin absolue mais il te donne un chemin relatif.

en fait il marcherai comme si tu avais utilisé REQUEST_URI. Je ne vois pas trop pourquoi...
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h51   #11
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par somi69 Voir le message
pourquoi $_SERVER['DOCUMENT_ROOT'] ne marche pas ? Où est la différence avec le code ci-dessus ?
l'attribut href vise des URL références à lier au document (URL interne/relative ou externe) mais ne permet pas de lier un chemin absolu car ton navigateur ne doit pas ne peut pas connaitre ce chemin.

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/07/2011, 14h06   #12
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 8
Points : 1
Points : 1
Citation:
l'attribut href vise des URL références à lier au document (URL interne/relative ou externe) mais ne permet pas de lier un chemin absolu car ton navigateur ne doit pas ne peut pas connaitre ce chemin.
Ok !

Merci à tous pour votre aide !
somi69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h36.


 
 
 
 
Partenaires

Hébergement Web