Affichage d'une image en PHP
Ferméjordane45 Messages postés 38373 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 janvier 2025 - 4 janv. 2023 à 07:03
- Afficher une image en php
- Image iso - Guide
- Comment agrandir une image - Guide
- Acronis true image - Télécharger - Sauvegarde
- Légender une image - Guide
- Transformer une image en icone - Guide
3 réponses
2 janv. 2023 à 16:00
bonjour,
tu as négligé de nous expliquer quel était le problème.
as-tu compris que le PHP envoyait simplement du code HTML au navigateur, et que c'est le navigateur qui va utiliser le lien en source de l'image pour afficher l'image? Ce n'est donc pas le programme PHP qui accéde aux images, mais le navigateur.
Tu dois donc mettre les images, sur ton site, de façon à ce qu'elles soient accessibles via un navigateur.
as-tu examiné le code source HTML à partir du navigateur?
4 janv. 2023 à 07:03
Bonjour
Ton dossier photo doit se trouver dans le www sinon ton php ne peut pas y accéder.
Il manque la base de données il me semble.
Un dossier est un dossier et n'indique rien. Vous devez stocker le texte de l'adresse de chaque fichier utilisé(URL) dans une base de données.
Imaginons nous avons une table de donnée(en général une c'est pas suffisant) composée comme ceci:
images(tables):
adresse(texte)
description(texte)
dateAjout(date)
Si on veut afficher la dernière image il faut faire une requête (SQL) sur le serveur de bases de données. Avec PHP c'est le rôle de PDO. On peut par exemple obtenir la dernière image ajoutée(en utilisant le champ dateAjout) ou toutes les images dans l'ordre désirée.
En cas pratique si nous voulons changer une image tous les 2 mois il faut enregistrer sur la base de donnée une nouvelle image. Le reste étant fait par le PHP si on affiche la dernière image ajoutée il n'y a rien à faire.
Ce principe des pages dynamiques est essentiel car cela permet d 'automatiser, l'autre solution étant de changer à la main le HTML. Même s'il n'y a qu'un changement tous les mois c'est une énorme économie d'énergie et la possibilité de pouvoir changer les contenus(que ce soit images, textes, mise en pages, musiques, l'âge du capitaine...) et dans le cas de nombreuses données devant être changée régulièrement(la majorité des sites) la seule solution possible est d'utiliser ce type d'automatisation en 3 parties séparées physiquement:
_Base de données(SQL) indique à PHP les données à afficher dans la page HTML(SQL est un langage de programmation donc on peut faire des filtres et tris facilement)
_PHP crée/modifie le HTML avant que la page soit utilisée en obtenant le résultat de la reqûete de la base
_HTML affiche le contenu une fois chargé dans le navigateur
et dans l'autre sens
_HTML fournit l'information à changer(formulaire) au programme PHP
_PHP trie et vérifie les données de la requête, prépare et envoit la requête à la base(avec PDO)
_Base de données: reçoit le changement/ajout/suppresion dans la base
Sauf que là j'ai pas l'impression que vous ayez la partie base de données ou c'est pas clair pour vous le rôle de PHP. PHP sert à faire la liaison entre le HTML et la base de données.
Aucune utilité sans la base autant faire du pur HTML. Par contre les sites HTML (statiques) sans bases de données et application serveur(PHP ou autre) ont aucune persistance dans le temps puisque qu'on ne peut pas changer facilement la moindre donnée de la page il devient rapidement onéreux ou faux de devoir changer les contenus à afficher puisque ça revient en général à réécrire une partie(ou plus souvent tout) le HTML
https://fr.wikipedia.org/wiki/Architecture_trois_tiers
J'ai à ma disposition une base de données, par exemple dans le cas des joueurs, j'ai dans ma base de données la possibilité d'y mettre des "images" mais en réalité il s'agit seulement du nom de l'image que j'insère et après via une requête SQL j'affiche l'image grâce à la balise <img> qui prend en valeur la concaténation d'une variable (qui reprend le chemin relatif vers le répertoire de mes photos) et du nom de la photo présente dans la BDD. Je ne sais pas si cela peut fonctionner mais en soi, si la photo se trouve dans le même répertoire que mes pages, tout fonctionne et en dehors ça ne fonctionne pas.
2 janv. 2023 à 17:06
Voici les instructions que je dois respecter :
Pour uploader la photo des joueurs vous devez suivre les instructions suivantes :
1/ créer un dossier, par exemple "projetPhotos" en dehors du dossier www ;
2/ ajouter le droit d'écriture à ce nouveau dossier pour les autres ;
3/ uploader vos photos dans ce nouveau dossier.
Les photos ainsi téléchargées appartiennent à l'utilisateur www-data, celui utilisé pour exécuter apache.
Pour le moment je pense avoir tout respecter.
Pour l'affichage de mon image je peux voir ça dans mon code source après quelque modifications :
il y a bien un lien qui se fait mais je ne pense pas qu'il soit bon, sachant que je suis sur un hébergeur je vois pas trop comment faire.
2 janv. 2023 à 17:53
Tu as négligé de nous expliquer quel était le problème. As-tu un message d'erreur?
Où sont les instructions que tu dois respecter en ce qui concerne l'affichage des joueurs?
D'où viennent ces instructions? Ne peux-tu pas créer le dossier "projetPhotos" à l'intérieur du dossier www?
Modifié le 2 janv. 2023 à 18:01
Voilà l'une de mes pages :
Ici comme on peut le voir l'image ne s'affiche pas mais le reste oui, et j'ai bien des instructions à suivre et je suis bien obligé de mettre le répertoire photo en dehors du répertoire www (celui de mes pages). Il s'agit d'un projet à réaliser en PHP, la réalisation de mon projet se passe sans trop de mal mais j'ai pas encore toutes les notions surtout concernant l'affichage de mes images je vois pas trop comment faire.
2 janv. 2023 à 18:08
Avant de visualiser les images via ta page PHP, il est nécessaire que ces images soient accessible à partir du navigateur. (Ce n'est pas strictement nécessaire, mais c'est le plus simple.)
Il est donc nécessaire que tu modifies la définition de ton site (chez ton hébergeur) de façon à ce que le dossier contenant les photos soit accessible à partir d'un navigateur. Quand tu auras modifié et testé cela, tu pourras ensuite adapter ta page PHP.