Problème avec include et URL
Résolu/Fermé
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
-
26 janv. 2022 à 16:36
max30_3775 Messages postés 178 Date d'inscription jeudi 4 novembre 2021 Statut Membre Dernière intervention 18 mars 2022 - 27 janv. 2022 à 09:00
max30_3775 Messages postés 178 Date d'inscription jeudi 4 novembre 2021 Statut Membre Dernière intervention 18 mars 2022 - 27 janv. 2022 à 09:00
6 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
26 janv. 2022 à 20:00
26 janv. 2022 à 20:00
Bonjour,
A priori, le problème ne vient pas des chemins des include en php mais plutôt des URLs relatives en html.
Coté client (html/css/js), une solution simple pour les pages internes est d'utiliser des URLs absolues en commancant par la racine / de ton site.
Par exemple pour un lien vers la page d'accueil :
Pour relier vers la feuille de style
Pour un lien vers la page affichage :
Tes URLs devraient ainsi être correctes sur toutes les pages.
Attention à ne pas confondre les URLs coté client dans le code html/css/js
(
et les chemins via le système de fichier coté serveur dans le code php
(
Cette solution est valable pour les URLs, il ne semble pas nécessaire de modifier les chemins de tes include php.
A priori, le problème ne vient pas des chemins des include en php mais plutôt des URLs relatives en html.
Coté client (html/css/js), une solution simple pour les pages internes est d'utiliser des URLs absolues en commancant par la racine / de ton site.
Par exemple pour un lien vers la page d'accueil :
<a href="/accueil.php">Accueil</a>
Pour relier vers la feuille de style
<link rel="stylesheet" href="/style.css">
Pour un lien vers la page affichage :
<a href="/principales/affichage.php?id=101">Page 101</a>
Tes URLs devraient ainsi être correctes sur toutes les pages.
Attention à ne pas confondre les URLs coté client dans le code html/css/js
(
href="http://projetsite/accueil.php"ou
href="../accueil.php"en relatif depuis le dossier "principales")
et les chemins via le système de fichier coté serveur dans le code php
(
include "c:/Users/Max/projectsite/header.php";ou
include "../header.php";en relatif depuis le dossier "principales").
Cette solution est valable pour les URLs, il ne semble pas nécessaire de modifier les chemins de tes include php.
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
Modifié le 27 janv. 2022 à 06:05
Modifié le 27 janv. 2022 à 06:05
Bonjour Pitet et merci pour ta réponse. Tu as bien compris le problème, et en faisant comme tu as dit les URLs sont correctes sur toutes les pages.
Le souci maintenant c'est avec les includes (je ne suis pas sûr ) car les images des annonces ne s'affichent pas dans la page affichage.php, seul l'image par défaut no_image.png s'affiche. Peut -être parce qu'on a fait /no_image.png comme on peut le voir dans le code ci-dessous.
Les images s'affichent correctement dans la page accueil.php (que j'ai renommée index.php).
Voici comment j'ai organisé mes dossiers, avec pictures là où les images sont sauvegardées après soumission du formulaire:
Voici les include dans le header(qui se trouve sur toutes les pages):
Les includes de la page index.php:
Les includes de la page affichage.php:
La page cmdaffichage.php contenant les fonctions:
Dans la page affichage.php, pour afficher les images:
->Et lorsqu'on veut faire un header location, l'url sera de la même sorte que le href?
exemple:
->Dans notre formulaire doit-on faire , $location= ../pictures au lieu de $location= pictures/
-> Quid des include si le site a déjà un nom? Doit-on faire:
Le souci maintenant c'est avec les includes (je ne suis pas sûr ) car les images des annonces ne s'affichent pas dans la page affichage.php, seul l'image par défaut no_image.png s'affiche. Peut -être parce qu'on a fait /no_image.png comme on peut le voir dans le code ci-dessous.
Les images s'affichent correctement dans la page accueil.php (que j'ai renommée index.php).
Voici comment j'ai organisé mes dossiers, avec pictures là où les images sont sauvegardées après soumission du formulaire:
Voici les include dans le header(qui se trouve sur toutes les pages):
include "langues/fb.php"; include "control/commandes.php";
Les includes de la page index.php:
include 'cnx.php'; include "langues/fb.php"; include "control/cmdaffichage.php"; include "header.php";
Les includes de la page affichage.php:
include "../cnx.php"; include "../control/cmdaffichage.php"; include "../header.php";
La page cmdaffichage.php contenant les fonctions:
function affichageAnnonce($id_cat){ global $bdd; $annonces = getAnnonceCategorie($id_cat); $images = getPhotosAnnonces($annonces); $res = []; foreach ($annonces as $R) { $res[$R['id']] = $R; $imgs = !empty($images[$R['id']]) ? $images[$R['id']] : NULL; if(!empty($imgs)){ foreach($imgs as $I){ $res[$R['id']]['images'][] = !empty($I['IMG']) ? $I['IMG'] : null; } }else{ $res[$R['id']]['images'] = null; } } return $res; }
Dans la page affichage.php, pour afficher les images:
$images = !empty($a['images']) ? $a['images'] : ['/no_image.png'];
->Et lorsqu'on veut faire un header location, l'url sera de la même sorte que le href?
exemple:
header("Location: /membre/profil.php?id=".$_SESSION['id']);
->Dans notre formulaire doit-on faire , $location= ../pictures au lieu de $location= pictures/
-> Quid des include si le site a déjà un nom? Doit-on faire:
include "http://nomdusite.com/header.php"
jordane45
Messages postés
38306
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
27 janv. 2022 à 06:58
27 janv. 2022 à 06:58
Bonjour
Et..... Comment affiches tu tes images ?
As tu regardé le lien qui est généré dans tes balises img ? Te sembles t'il bon ?
Et..... Comment affiches tu tes images ?
As tu regardé le lien qui est généré dans tes balises img ? Te sembles t'il bon ?
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
Modifié le 27 janv. 2022 à 07:10
Modifié le 27 janv. 2022 à 07:10
Bonjour Jordane, je pense que le lien généré dans les balises img est bon.
Et dans le code source c'est ça pour la première annonce par exemple:
Et à l'affichage:
$images = !empty($a['images']) ? $a['images'] : ['/no_image.png']; foreach ($images as $img) { echo '<img class ="active" style="width:240px; height:170px;" src="' . $img . '">'; }
Et dans le code source c'est ça pour la première annonce par exemple:
<img class ="active" style="width:240px; height:170px;" src="pictures/IMG_2114.JPG">
Et à l'affichage:
jordane45
Messages postés
38306
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
27 janv. 2022 à 07:27
27 janv. 2022 à 07:27
Et donc... Le chemin te semble bon ?
C'est bien écrit parfaitement identiquement (majuscules/minuscules) ?
Ne manquerait il pas un slash au début ?
C'est bien écrit parfaitement identiquement (majuscules/minuscules) ?
Ne manquerait il pas un slash au début ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
27 janv. 2022 à 07:37
27 janv. 2022 à 07:37
ça a marché :). J'ai ajouté un /:
Et pour les questions plus haut:
1-Lorsqu'on veut faire un header location, l'url sera de la même sorte que le href?
exemple:
2-Dans notre formulaire doit-on faire , $location= ../pictures au lieu de $location= pictures/
3- Quid des include si le site a déjà un nom? Doit-on faire:
echo '<img class ="active" style="width:240px; height:170px;" src="/' . $img . '">';
Et pour les questions plus haut:
1-Lorsqu'on veut faire un header location, l'url sera de la même sorte que le href?
exemple:
header("Location: /membre/profil.php?id=".$_SESSION['id']);
2-Dans notre formulaire doit-on faire , $location= ../pictures au lieu de $location= pictures/
3- Quid des include si le site a déjà un nom? Doit-on faire:
include "http://nomdusite.com/header.php"
jordane45
Messages postés
38306
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
27 janv. 2022 à 08:38
27 janv. 2022 à 08:38
3- Quid des include si le site a déjà un nom?
Non.. relis la réponse de Pitet ....
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
27 janv. 2022 à 09:00
27 janv. 2022 à 09:00
Ok, merci à vous deux pour tout :)