Nous sommes actuellement le Jeu 20 Juin 2013, 05:00
Messages depuis 12 | 24 | 36 heures.




 [ 18 messages ]  Publier une réponse
 Sujet du message: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 21:05 
Maître du Kyudo

Inscrit le: Sam 04 Juin 2011, 10:13
Messages: 394
Bonjour.

Je développe actuellement un site web et je rencontre un petit problème.

À la racine de mon site, j'ai les fichiers/dossiers suivants: include/, images/, L1/, index.php, cours_index.php.

Dans le dossier L1, j'ai une page coursL1.php, qui fait appel grace à un include, au fichier header.php qui se trouve dans le dossier include (donc dossier parent). Ce fichier header.php fait quant à lui appel à une image du dossier images.

Le truc c'est que du coup, quand je vais sur /L1/coursL1.php, je n'arrive pas à avoir l'image du header. Je peux bidouiller les chemins pour avoir le texte du header, mais pas l'image. Est ce que vous auriez une astuce pour contrer ça? (Autre que copier-coller le code html du header dans toutes les pages, j'en ai une cinquantaine dans le même genre).

Je vous mets les codes des fichiers pour que cela soit plus clair:

/include/header.php
Code:
<header>
        <a href="index.php"> <img src="images/logo.png" alt="logo_large" class="logo"/> </a>
        <p class="p_header"> Bienvenue sur le site du Bureau Des Étudiants de Chimie de l'Université Valrose ! </p>
</header>



/cours_index.php
Code:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>B.D.E. Chimie de Nice - Valrose</title>
    </head>

    <body>
        <?php include("include/header.php"); ?>
        <?php include("include/menu.php"); ?>

        <section class="article">
            <a href="L1/coursL1.php" class="bouton_cours" >  SM 1ère année </a><br>
            <a href="L2/coursL2.php" class="bouton_cours" > SM 2ème année </a><br>
            <a href="L3/coursL3.php" class="bouton_cours" > Licence Chimie 3ème année </a><br>
            <a href="M1/coursM1.php" class="bouton_cours" > Master Chimie 1ère année </a><br>
            <a href="M2/coursM2.php" class="bouton_cours" > Master Chimie 2ème année </a>
        </section>
    </body>
</html>


/L1/coursL1.php
Code:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../style.css" />
        <title>B.D.E. Chimie de Nice - Valrose</title>
    </head>

    <body>

        <?php include("../include/header.php"); ?>
        <?php include("../include/menu.php"); ?>
   
   
        <section class="article">
            <article>
                <h1> Cours de Licence Science de la Matière 1ère année </h1>
                    <p class="p_accueil">
                        La section sera mise à jour dès que les premiers cours nous seront parvenus !</br>
                        Vous pouvez toujours nous envoyer les cours non disponibles à <a href="mailto:mail@bdechimie.fr">mail@bdechimie.fr</a> pour nous faire gagner du temps !</br>
                    </p>
            </article>
        </section>

    </body>
</html>


Cordialement.


Dernière édition par djipey le Ven 30 Déc 2011, 21:43, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 21:19 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Dim 15 Août 2010, 11:48
Messages: 8183
Localisation: Basse-Normandie
Le hic est que tu ne nous as pas indiqué le bon contenu pour le fichier header.php (c'est le même que cours_index.php). :copain:
Sinon, je pense que tu auras les indications de ce qu'il se passe en observant simplement le code html produit lorsque tu tentes d'intégrer ton image (coquille dans la syntaxe, mauvais chemin, espaces ou caractères spéciaux à gèrer, etc.). :chinois:

_________________
«The following statement is not true. The previous statement is true.» :nage:


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 21:46 
Maître du Kyudo

Inscrit le: Sam 04 Juin 2011, 10:13
Messages: 394
Quel imbécile je suis...C'est corrigé.

Je sais exactement ce qu'il se passe en fait: /L1/coursL1.php appelle /include/header.php, qui lui même utilise avec de l'html /images/logo.png.
Mais une fois l'include fini, le chemin pour logo.png n'est pas le bon dans la page. Je voudrais pouvoir trouver une solution pour que cela marche en local, et sur mon serveur distant.


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 22:22 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Mai 2009, 15:48
Messages: 7238
Pourquoi ne pas tout simplement mettre <img src="/images/logo.png" ... /> au lieu de <img src="images/logo.png" ... />
La seul condition pour que cela fonctionne toujours c'est que le dossier image soit toujours à la racine de ton site (Tu ne pourras pas déplacer le tout dans un sous dossier)

_________________
Zsh | KDE 4 | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 22:48 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Dim 15 Août 2010, 11:48
Messages: 8183
Localisation: Basse-Normandie
Un peu plus souple sans pour autant se casser la tête: utiliser $_SERVER["SERVER_NAME"] ou $_SERVER["SERVER_ADDR"] qui te donne le nom du serveur ou son adresse (à condition que le serveur donne ces infos ce qui devrait être le cas, c'est dans les spécifications il me semble... au moins pour SERVER_NAME).
Code:
<?php

echo("<a href=\"index.php\"> <img src=\"http://".$_SERVER["SERVER_NAME"]."/puis/le/chemin/vers/le/site/qui/renferme/images/logo.png\" alt=\"logo_large\" class=\"logo\"/> </a>
        <p class=\"p_header\"> Bienvenue sur le site du Bureau Des Étudiants de Chimie de l'Université Valrose ! </p>

?>


Sinon, méthode de lâche :mrgreen: : déplacer ton index au même niveau que les autres... :sifflote2:

_________________
«The following statement is not true. The previous statement is true.» :nage:


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 22:54 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Mai 2009, 15:48
Messages: 7238
@FoolEcho Ta solution est pire que la mienne...

_________________
Zsh | KDE 4 | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 23:09 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Dim 15 Août 2010, 11:48
Messages: 8183
Localisation: Basse-Normandie
Oui et non. Si tout est casé dans un répertoire/site (comme ça devrait être le cas), ça ne change pas grand-chose... J'suis d'accord que garder les chemins relatifs est le mieux, mais être consigné à la racine du serveur c'est ballot aussi s'il y a d'autres choses aménagées à côté (bonjour la maintenance)...
... ou alors faut déterminer à chaque fois d'où le script est lancé, de façon à adapter le chemin, c'est un peu laid aussi. Ceci dit, ça peut se faire sans calculs savants: par défaut, on dit que l'étage est "../images", sauf cours_php qui passerait la variable à "./images").

Franchement, je mettrai cours_index.php au même niveau que les autres... :)

Et puis d'abord, c'est le week-end, la fin de l'année, tout ça... :mrgreen: :copain:

_________________
«The following statement is not true. The previous statement is true.» :nage:


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 23:32 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Mai 2009, 15:48
Messages: 7238
Mais FoolEcho mon chemin est absolue ! Mon chemin n'est pas relatif du tout :-)
Tu devrait réviser le HTML :) Tu as 3 types de chemin :
- Le relatif : Ne commence jamais avec /
- L'absolue : Commence toujours avec /
- Le lien "externe" ou absolue avec adresse web/ip du site

_________________
Zsh | KDE 4 | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 23:35 
Maître du Kyudo

Inscrit le: Sam 04 Juin 2011, 10:13
Messages: 394
Je ne peux pas déplacer mon index au même niveau que les autres. Enfin si, mais je ne règle pas le problème. Mon site est pour un bureau des étudiants.
J'ai une page cours_index qui redirige vers un autre index dans une année d'étude (un dossier: L1, L2), cet autre index comprendra toutes les matières de l'année. Cela peut aller jusqu'à une quinzaine de matière. D'où la nécessité de faire des dossiers.

Ensuite moi j'aimerais bien faire "/images/logo.png", mais le problème c'est quand je teste le site chez moi, en local. Mon dossier de test est ici: /opt/lampp/htdocs/tests. Je ne veux pas avoir à modifier toutes les pages avant d'uploader le site sur le serveur.


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 23:39 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Mai 2009, 15:48
Messages: 7238
Dans dans ce cas c'est assez simple tu ajoutes un fichier de config PHP qui spécifie le chemin vers le dossier images.
Sinon tu peux le faire en 100% auto en bricolant avec les variables $_SERVER de php http://php.net/manual/fr/reserved.variables.server.php

_________________
Zsh | KDE 4 | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 23:47 
Maître du Kyudo

Inscrit le: Sam 04 Juin 2011, 10:13
Messages: 394
Évitons le bricolage, je ne suis pas très fort.

Tu peux détailler le principe du fichier de config php? Ça m'a l'air simple.


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Ven 30 Déc 2011, 23:58 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Mai 2009, 15:48
Messages: 7238
Tu créer un fichier nommé un peu comme tu veux, par exemple config.php
Code:
<?php
//Chemin ne devant pas se terminer par un /
define('PATH_ROOT_TO_APP', ''); // Chemin pour la 'prod'
//define('PATH_ROOT_TO_APP', '/tests'); // Pour tes tests
?>

Puis tu modifie tous tes fichiers php et tu rajoute en entête ceci (Juste après <?php)
Code:
require_once('chemin_vers_config.php');

Puis il suffit ensuite d'utiliser la constante pour définir le chemin de l'image
Code:
<img src="<?php echo PATH_ROOT_TO_APP ?>/images/logo.png" ... />

_________________
Zsh | KDE 4 | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Sam 31 Déc 2011, 00:12 
Maître du Kyudo

Inscrit le: Sam 04 Juin 2011, 10:13
Messages: 394
Ok. Ça se fait.


Citer:
Puis tu modifie tous tes fichiers php et tu rajoute en entête ceci (Juste après <?php)
require_once('chemin_vers_config.php');


Je dois donc modifier absolument tous mes fichiers et leur rajouter ce petit bout de php. Et le chemin vers config.php peut être donné en relatif avec des ../ . Mouais au final..

Et avec une variable serveur? Il n'y en a pas une qui donne la racine? (lampp, c'est apache comme serveur, et je suis hebergé chez OVH: serveur linux, et apache). Est ce que ça pourrait être plus simple?


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Sam 31 Déc 2011, 00:17 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Mai 2009, 15:48
Messages: 7238
Je ne suis pas sûre de comprendre le problème. Dans tous les cas tu dois modifier tous tes fichier PHP ? non ?
S'il n'y a que le fichier header qui contient une image pointant vers le dossier image alors je ne comprend pas pourquoi tu ne modifie pas uniquement ce fichier ? (Entre prod et test, même pas besoin de config.php)
Bref soit plus précis car j'ai peur de ne plus te suivre

_________________
Zsh | KDE 4 | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Sam 31 Déc 2011, 00:25 
Maître du Kyudo

Inscrit le: Sam 04 Juin 2011, 10:13
Messages: 394
Oui, je m'embrouille un peu aussi, je suis fatigué.

C'est ça, si je ne dois modifier que le fichier header, c'est cool.

FoolEcho proposait ça:

Code:
echo("<a href=\"index.php\"> <img src=\"http://".$_SERVER["SERVER_NAME"]."/puis/le/chemin/vers/le/site/qui/renferme/images/logo.png\" alt=\"logo_large\" class=\"logo\"/> </a>


Mais je ne suis pas fan de $_SERVER["SERVER_NAME"], puisque ça donne un chemin externe. Il n'y a pas une variable serveur qui donne la racine?


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Sam 31 Déc 2011, 00:27 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Mai 2009, 15:48
Messages: 7238
... As tu vu mon message ici : post85311.html#p85311
Donc soit tu met ceci <img src="/images/logo.png" ... /> soit <img src="/tests/images/logo.png" ... />
Pourquoi vous voulez faire compliqué ?

_________________
Zsh | KDE 4 | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Sam 31 Déc 2011, 00:43 
Maître du Kyudo

Inscrit le: Sam 04 Juin 2011, 10:13
Messages: 394
Lol j'avoue. J'ai fait nettement plus simple en fait. J'ai bougé le répertoire tests vers son répertoire parent, du coup il est à la racine de mon serveur en local. Plus du tout de problème, les chemins seront les mêmes partout (j'ai juste foutu en l'air l'interface de xampp, pas très grave).

Une dernière question: j'ai lu à plusieurs endroits que ce n'était pas bien de mettre des chemins absolus. Hors c'est exactement ce que je vais faire. Est ce que c'est mal?


Haut
 Profil  
 
 Sujet du message: Re: [HTML/PHP] inclure une page avec des fichiers
MessagePublié: Sam 31 Déc 2011, 10:49 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Dim 15 Août 2010, 11:48
Messages: 8183
Localisation: Basse-Normandie
benjarobin a écrit:
Mais FoolEcho mon chemin est absolue ! Mon chemin n'est pas relatif du tout :-)

J'ai bien dit que je fatiguais. :oops:

djipey a écrit:
Mais je ne suis pas fan de $_SERVER["SERVER_NAME"], puisque ça donne un chemin externe. Il n'y a pas une variable serveur qui donne la racine?

djipey a écrit:
Et avec une variable serveur? Il n'y en a pas une qui donne la racine?

$_SERVER["DOCUMENT_ROOT"]... ça revient au même que d'employer l'une des autres que j'ai proposé. Quitte à employer des chemins absolus autant qu'ils soient semi-automatiques justement plutôt que d'être contraint de tout mettre à la racine du serveur. Il suffit alors que le serveur de test abrite la même hiérarchie que celui de production, c'est un moindre mal (c'est un poil plus satisfaisant que de tout caser à la racine -- trop problématique si ton serveur a une hiérarchie complexe --, mais ça n'est pas une bonne pratique non plus).

djipey a écrit:
Une dernière question: j'ai lu à plusieurs endroits que ce n'était pas bien de mettre des chemins absolus. Hors c'est exactement ce que je vais faire. Est ce que c'est mal?

C'est mal dans le sens où si c'est mal fait, c'est un nid à problèmes (essentiellement de maintenance: si le site est déplacé par l'administrateur). L'idéal est d'avoir ton site qui tient dans un répertoire (avec sous-répertoires bien entendu) et que le simple fait de le placer n'importe où sur ton serveur ne change rien à son comportement précisément car tous les chemins sont en relatif.
À partir du moment où on dit que le répertoire doit être à tel endroit, ça devient un problème.
C'est pourquoi je le redis: tu rajoutes un répertoire accueil par exemple et tu places ton cours_index.php dedans (tes scripts qui vont inclure l'header seront donc bien au même niveau) et au niveau serveur c'est lui le point d'entrée de ton site, peu importe à quel étage il sera donc situé et on garde tout en relatif (... quand j'en vois qui font des procédures qui alourdissent le code «juste pour ça»).

_________________
«The following statement is not true. The previous statement is true.» :nage:


Haut
 Profil  
 
Afficher les messages publiés depuis:  Trier par  
 [ 18 messages ]  Répondre au sujet


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Rechercher pour:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction réalisée par Maël Soucaze © 2010 phpBB.fr
phpBB SEO


© 2009-2010 Archlinux.fr ~ Communauté Francophone Arch Linux