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 :

double appel du script quand balise <img src vide


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Par défaut double appel du script quand balise <img src vide
    Voilà un script simplifié qui illustre mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    //Sert uniquement pour voir si la page est appellée plusieurs fois 
    session_start();
    $_SESSION['test']++;
     
    //la variable qui pose problème selon que scr est vide ou non
    $monimage="<img src=\"\" alt=\"texte\"/>";
     
    echo $monimage;
    echo $_SESSION['test'];
    ?>
    Le problème c'est que quand j'appelle cette page, elle est appellée deux fois : je peux le vérifier avec la variable $_SESSION['test'] qui prend les valeurs 2,4,6,8... (au lieu de 1,2,3...) à chaque actualisation de la page.

    En revanche, si la balise <img src est renseignée (par exemple <img src=\"test.png\" > le problème disparait. S_SESSION['test'] prend bien les valeurs 1,2,3... à chaque actualisation.

    La je séche...

    Une hypothèse, mais j'y crois à moitié, c'est que firefox (le navigateur que j'utilise) voyant une "erreur" html recharge la page "pour être sur d'avoir bien lu". Je ne peux pas tester avec IE (j'utilise linux), mais si quelqu'un peut le faire et me dire si le bug est reproduit, ça pourrait être une piste de recherche.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    c'est que firefox (le navigateur que j'utilise) voyant une "erreur" html recharge la page "pour être sur d'avoir bien lu". Je ne peux pas tester avec IE
    Une balise IMG avec une source vide doit être une erreur HTML oui.
    Pas de bug sous IE (7)...

    Je suppose que tu dois modifier la src de l'image via un script, donc mets un gif vide transparent qd tu veux pas afficher d'image.

  3. #3
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Lorsque tu as un src="" vide (valable aussi avec action="" ou bien pour le href="" pour les CSS), firefox remplace ce vide par l'URL de la page courante, donc ta page est chargée autant de fois en paralèle.

    Oui oui on est d'accord, Firefox fait des trucs qu'on ne lui demande pas de faire
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Faux. Firefox fait exactement ce que tu lui demandes.
    http://www.ietf.org/rfc/rfc1808.txt, Section 4, Step 2, a)

    Quand même, faut le vouloir pour ne rien mettre dans l'attribut src d'une image Après vous vous étonnez d'avoir des comportements qui ne correspondent pas à vos attentes...

  5. #5
    Membre éclairé Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Par défaut
    Merci pour vos réponse !

    Si je comprends bien le document http://www.ietf.org/rfc/rfc1808.txt (4-2-a), celà veut dire qu'une url vide est remplacée par l'url courante (je suis pas un anglophone de très bon niveau). Bon, mais jusque là, pas de problèmes. Mais ça n'explique pas que le script soit appelé deux fois : il trouve une url vide et la remplace par l'url courante c'est tout.

    Le problème que j'évoque si dessus n'apparait pas dans le cas d'un lien vide type <a href... à la place <img src...

    Quand même, faut le vouloir pour ne rien mettre dans l'attribut src d'une image
    D'accord avec toi, et a priori celà n'arrivera pas dans le site que je developpe : en fait, pour la petite histoire je me suis apercu de ce problème en cours de developpement en ayant accidentellement laissé une balise img vide. Je voudrais comprendre le problème pour en voir les implications et éviter d'autres erreurs qui pourraient être liées à ce comportement.

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    ben il faut bien que ton browser affiche une image quand il rencontre la balise <img />... Et cette image il la trouve où ? dans src... qui est l'url du document, donc il fait une requete vers ce document.

    Ca permettrait par exemple de faire un script qui renvoie une fois sur deux un contenu html, et une autre fois sur deux une image... Bon je reconnais faut être tordu

    Pour un lien c'est différent, car le browser ne va chercher le document pointé par ton a que quand tu cliques dessus...

    Par contre mets une feuille de style vide dans ton <head>, tu auras peut-etre trois appels : 1 pour le document, 1 pour la feuille de style, 1 pour l'image

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/02/2008, 17h47
  2. [iframe] [javascript] executer script quand iframe chargé
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/02/2006, 15h22
  3. [Sqlplus ] Appel depuis script KSH
    Par kasiop dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2006, 10h25
  4. Réponses: 6
    Dernier message: 23/05/2005, 08h33
  5. usage balise <img src ..> dans un fichier inc.
    Par faamugol dans le forum ASP
    Réponses: 4
    Dernier message: 20/12/2004, 14h09

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