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 :

attribut src d'une image en php


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Points : 84
    Points
    84
    Par défaut attribut src d'une image en php
    Bonjour à tous,

    J'ai une liste d'objets Bien. Chacun de ces objets possède une dizaine d'attributs, dont un attribut $photos, qui est un array d'objets Photo. Cette liste d'objets est correcte, je l'ai testée. Elle s'appelle $liste, et var_dump($liste) m'affiche bien ma liste d'objets, avec les bons attributs. Pour accéder à ma liste de photos, attribut de mon objet Bien, j'ai une méthode getPhotos() de mon objet Bien, dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function getPhotos(){
    		return $this->photos;
    	}
    Elle devrait donc renvoyer l'array de photos. J'ai voulu faire une boucle foreach, qui boucle tous les biens et affiche les photos de chaque. Mais il se passe quelque chose que je ne comprends pas :
    immédiatement après la ligne où ma liste est correcte (c'est-à-dire juste après mon var_dump et après l'avoir "commenté"), je commence ma boucle foreach comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach($liste as $bien){
    			$photos = $bien->getPhotos();
    mais si je fais un var_dump($bien) juste à la suite, seul le premier objet est retourné.

    Je constate que l'include final de ma page (footer.php) n'apparaît pas non plus. J'en déduis que j'ai un problème de fermeture de parenthèse, guillemets ou balise. En effet, je constate qu'à un moment, la coloration syntaxique change : avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div class="cadre-annonce">
    					<figure><img src="<?php
    					if (!empty($photos)) {
    						echo 'images/'.$photos[0];
    					}else{
    						echo 'images/no_picture2.jpg';
    					}
    					?>"><figcaption  data-toggle="modal" data-target="#<?php echo $id_modal?>"><h4><span class="fa fa-search"></span> Cliquez ici pour voir les détails</h4></figcaption ></figure><section><?php echo $resume.'</section></div>
    Le changement de coloration syntaxique semble se produire lorsque j'essaie de préciser la source des images : <img src"<?php...?>"... Est-ce que les guillemets sont mal interprétés ? Si je les échappe, la coloration ne change pas. Y a-t-il une autre façon de faire ?

    La coloration syntaxique semble redevenir normale si je remplace les " par &quot; mais le résultat est le même : le script n'est pas lu jusqu'au bout.

    Merci d'avance de votre aide.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    A vue de nez, les morceaux de code que tu montres ont l'air correct.
    Les systèmes de coloration syntaxique ont souvent du mal avec le mélange HTML/PHP. Donc c'est pas parce que la coloration est bizarre qu'il y a forcément un problème, mais effectivement, ça peut être un symptôme.

    Si tu regardes la source de la page HTML générée, est-ce qu'il y a du code PHP dedans ? ou des choses bizarres ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre régulier Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Celira Voir le message
    A vue de nez, les morceaux de code que tu montres ont l'air correct.
    Les systèmes de coloration syntaxique ont souvent du mal avec le mélange HTML/PHP. Donc c'est pas parce que la coloration est bizarre qu'il y a forcément un problème, mais effectivement, ça peut être un symptôme.

    Si tu regardes la source de la page HTML générée, est-ce qu'il y a du code PHP dedans ? ou des choses bizarres ?
    Non, il n'y a pas de code PHP dans la page, ni de choses bizarres. On dirait que la fin du script est tout simplement ignorée. J'ai beau lire et relire mon code, je ne vois pas où j'ai une erreur. J'ai vérifié toutes les paires d'accolades, de parenthèses et de balises, mais rien. Tous les indices semblent concorder sur le bout de code dont j'ai parlé. C'est ce morceau-là qui est ignoré.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Quand tu dis "rien de bizarre dans la page", tu as bien vérifié la source générée et pas juste le visuel ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre régulier Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Celira Voir le message
    Quand tu dis "rien de bizarre dans la page", tu as bien vérifié la source générée et pas juste le visuel ?
    Oui, oui. Exactement. Je parle du code html généré. Les balises sont normales, mais elles sont vides.

  6. #6
    Membre régulier Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Celira Voir le message
    A vue de nez, les morceaux de code que tu montres ont l'air correct.
    Les systèmes de coloration syntaxique ont souvent du mal avec le mélange HTML/PHP. Donc c'est pas parce que la coloration est bizarre qu'il y a forcément un problème, mais effectivement, ça peut être un symptôme.

    Si tu regardes la source de la page HTML générée, est-ce qu'il y a du code PHP dedans ? ou des choses bizarres ?
    Au temps pour moi ! Je regardais sur les outils de développement, et je n'avais pas déplié toutes les balises. J'ai en effet des messages d'erreur sur la fenêtre modale (qui ne peut pas être affichée, puisque l'élément déclencheur n'est pas affiché). Comme il s'agit d'une erreur fatale, le reste ne s'affiche pas. Apparemment, j'ai traité un objet Photo comme une chaîne de caractères. Je vais regarder ça de plus près.

    ...(après quelques modifications).

    J'avais effectivement fait référence au nom de la photo sans faire appel à la méthode getNom(). Après correction de cette erreur cependant, le problème persiste : une seule photo s'affiche, celle du premier bien de la liste. Les autres sont ignorés. J'y retourne...

  7. #7
    Membre régulier Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Points : 84
    Points
    84
    Par défaut
    C'est exactement le même problème, ailleurs dans le code. A présent, le problème est résolu : j'avais commencé à coder à partir d'une liste des noms des photos de chaque bien. Lorsque j'ai commencé à vouloir travailler avec des objets, tout s'est mélangé. Rien n'a plus fonctionné. J'avais laissé $photo là où il fallait écrire $photo->getNom() ! C'est tout bête, mais ça m'a pris plus de quatre heures pour trouver la solution. Et ça, ça énerve...

    Ouf ! Je vais pouvoir marquer cette question comme résolue !

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    bon à savoir dans ce genre de situations : les outils de dev te permettent de voir le code tel que le navigateur l'interprète.
    Par exemple, si tu as écrit une bêtise de ce genre (la balise td de la 2e cellule n'est pas fermée):
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <table>
    	<tr>
    		<td>cel 1</td>
    		<td>cel avec une erreur<td>
    		<td> cel 3</td>
    	</tr>
    </table>
    Ton navigateur va tenter d'afficher quelque chose quand même et fermer lui-même les td non fermés. Ce que le navigateur affiche et donc ce qui est visible dans les DevTools (accessible par F12 en général sous Windows) est ceci :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <table>
            <tbody><tr>
                <td>cel 1</td>
                <td>cel avec une erreur</td><td>
                </td><td> cel 3</td>
            </tr>
        </tbody></table>
    alors que la véritable source (accessible en général par un Ctrl+U sous Windows) est :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        <table>
            <tr>
                <td>cel 1</td>
                <td>cel avec une erreur<td>
                <td> cel 3</td>
            </tr>
        </table>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. Changer l'attribut src d'une image
    Par bagu dans le forum jQuery
    Réponses: 12
    Dernier message: 16/06/2011, 12h52
  2. [Prototype] Changement de l'attribut src d'une image
    Par gescolino dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 18/07/2010, 17h10
  3. [ImageMagick] Apposer un logo à une image en PHP - Problème de couleurs
    Par Saiyan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/07/2006, 18h17
  4. Réponses: 6
    Dernier message: 14/06/2006, 22h31
  5. Afficher une image avec PHP
    Par a_zouggari dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2006, 18h02

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