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 :

masquer logo image brisée


Sujet :

Langage PHP

  1. #1
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut masquer logo image brisée
    Bonjour,

    Dans une base mysql j'ai des champs images, 10 en tout.
    Image1, Image2, Image3 ect...qui contiennent les noms d'images en jpg.
    On est pas obligé d'insérer les 10 noms d' images dans la base.
    Et si on décide de remplir que trois champs, les 7 autres champs Image4 et Image5 ect seront vides et apparaitront donc sur la page d'affichage des résultats avec un logo d'image brisée.

    Donc ma question: y aurait t-il un truc simple (niveau style de l'image par ex) pour éviter le logo d'image brisée de façon générale (quelque chose pour éviter d'écrire une condition pour les 10 images dans toutes mes pages...)
    lorsque l'image est volontairement absente.

    y aurait il, tout hasard, une solution plus simple pour éviter le logo image brisée?...
    ..)
    Voilà le code d'affichage, par ex de mon Image10,( le nom d'image y est précédé du chemin d'accès vers le script de redimensionnement)
    suite à ça, j'ai rajouté dans les propriété d'img
    "broken-image-skin=null" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src=/scripts/timthumb.php?src=Imagesagence/'.$donnees_messages['Image10'].' &h=100&w=YY&zc=1 broken-image-skin=null/>
    Mais ça ne fonctionne pas, le logo "lien brisé" apparait quand même.

    A votre avis s'agit il d'un problème au niveau de la syntaxe ou bien faut il chercher autre chose pour éviter le logo image brisée quand les champs images sont volontairement non renseignés?

    Merci par avance pour vos réponses

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 452
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 452
    Points : 4 601
    Points
    4 601
    Par défaut
    j'aurai tendance a dire qu'il ne faut pas essayer d'afficher une image qui n'existe pas... volontairement laisser passer des 404....moyen
    de plus, s'il n'y a qu'une image, ca fera beaucoup de place "reservee" inutilisee.
    => plus, l'utilisateur pourrait se dire "pfff, il lui manque toujours des images.. c'est pas serieux"

    tu sais que tu as max 10 images
    tu peux utiliser un compteur.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for($i=0; $i<=10; $i++) {
     if(!empty($donnees_messages['Image'.$i])) {
      echo '<img src="/scripts/timthumb.php?src=Imagesagence/'.$donnees_messages['Image'.$i].'&h=100&w=YY&zc=1" />';
     }
    }
    (pense a mettre des guillemets pour tes attribus)
    de plus, l'histoire de l'icone brisee depend du navigateur... certains l'affichent, d'autres non...
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    la solution de Doksuri est la plus logique et conventionnelle. (on n'affiche pas une image qui n'existe pas)
    Citation Envoyé par nal Voir le message
    (quelque chose pour éviter d'écrire une condition pour les 10 images dans toutes mes pages...)
    Cela dit, on peut trouver d'autres solutions : dans timthumb.php
    => tester l'existence de la photo avec file_exists(...)
    - si existante :
    -> on l'affiche
    - si inexistante (au choix) :
    -> soit afficher à la place une image de remplacement (personnalisée)
    -> soit mettre l'image en style="display:none; width:0; height:0;"

    Ps : il manque aussi l'attribut alt="..."

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Comme les avis déjà donnés, appeler une image qui n'existe pas, c'est assez bof comme technique...

    Pour moi, ma meilleure solution est de mettre comme valeur par défaut dans ta BDD une image générique à afficher lorsque l'image réelle n'a pas été renseignée.

    EDIT :
    Au fait
    c'est pas vraiment comme ça que ça marche le HTML, il suffit pas d'inventer des propriétés pour qu'elles existent !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut
    ...en cherchant un peu par hasard dans le code, j'ai trouvé une autre solution simple:

    faire apparaitre l'image dans le background d'un div
    dont hauteur ou la largeur est celle de l'image et rajouter background-repeat:no-repeat dans les propriétés du calque.

    ça donne pour une image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><div style="background-image:url(/scripts/timthumb.php?src=Imagesagence/'.$donnees_messages['Image1'].'); height:100; background-repeat:no-repeat " /></div></td>
    et là même avec l'image absente de la base y pas de logo image brisée...
    ouf...
    Merci pour les autres propositions de réponses

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

Discussions similaires

  1. Utiliser un div pour masquer une image
    Par calitom dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/03/2009, 11h35
  2. Afficher/masquer une image en Delphi 7
    Par sic_88 dans le forum Débuter
    Réponses: 3
    Dernier message: 15/03/2009, 15h17
  3. Masquer une image
    Par funfou dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 03/12/2008, 17h39
  4. Masquer un image (overflow : hidden)
    Par tom42 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/10/2007, 17h15
  5. insertion logo, image
    Par ndoumbelan dans le forum C
    Réponses: 8
    Dernier message: 28/12/2005, 14h01

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