IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

HTML & PHP : Problème de gestion des liens


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 4
    Points
    4
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  2. #2
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link type="text/css" rel="stylesheet" media="all" href="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>/styles/style.css" />

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    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 ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 !!

  6. #6
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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

  7. #7
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Bonjour,

    Il y a plusieurs méthodes...

    pour continuer la tienne, je ferais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link type="text/css" rel="stylesheet" media="all" href="<?php echo substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],"/",1)); ?>/styles/style.css" />

  8. #8
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    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à ?
    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...

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par ska_root Voir le message
    Bonjour,

    Il y a plusieurs méthodes...

    pour continuer la tienne, je ferais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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...)

  10. #10
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    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

  11. #11
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    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.


  12. #12
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Encodage] Formulaire html local (sans php) problème d'encodage des caractères
    Par DubeiserTM dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 01/06/2011, 10h34
  2. [POO] PHP et la gestion des classes
    Par Acti dans le forum Langage
    Réponses: 7
    Dernier message: 23/09/2005, 00h06
  3. [Dev-C++] Problème d'édition des liens
    Par shura dans le forum EDI
    Réponses: 5
    Dernier message: 30/08/2005, 09h35
  4. gestion des liens
    Par marsupilami34 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/08/2005, 02h15
  5. Problème à l'édition des liens avec BCC55 et Xerces
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/11/2003, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo