Firefox 0.9.x Link PHP MySQL Bug ??

  • Hallo zusammen,
    als eigentlich glückliche firefoxer ärgerts uns diesen ?Bug? gefunden zu haben. Vielleicht kann jemand eine gute Erklärung für das Verhalten bieten, diesen Fehler bestättigen oder uns vom Gegenteil überzeugen das es überhaupt keiner ist.

    Bei der Arbeit an einer php webseite trat beim Test der Datenbankklassen der Fehler auf, das pro run des testscriptes welches einen Datensatz produzieren sollte, zwei Datensätze in der Mysql Datenbank angelegt wurden.

    Nach mehrstündigem Debuggen wurde der Fehler in dieser kleinen Zeile im zusammenspiel mit firefox ausgemacht:

    Code
    <link rel="stylesheet" type="text/css" href="" media="print" />

    Wie man sieht fehlt der href Verweis auf das stylesheet. (entwicklung gabs auch noch garnicht:).

    Kann das was mit dem link prefetching von mozilla zu tun haben?

    auf ie läuft es normal durch, beim fux wird das Ergebnis des Skriptess angezeigt (angelegte Datensatz id), danach jedoch ein zweiter Datensatz angelegt und keine Ausgabe produziert.

    getestet auf Netscape 7.1: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

    und Firefox 0.8: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.6) Gecko/20040206 Firefox/0.8 und firefox 0.9.2

    hier noch der komplete Quellcode des Fehlers:




    Da ich nicht genau sagen kann ob es sich nun um einen (kritischen) Fehler oder eigene doofheit handelt wäre es super wenn das jemand auf anderen plattformen testen könnte.

    die server versionen kann ich auch bei bedarf auch noch posten. (apache 2, mysql 4.0, php 4.?)

    danke,
    sebastian

  • Sehr schwieriger Fall, kann den Fehler nicht bestätigen (Ich habe allerdings auch nicht extra eine Datenbank angelegt)
    Fx 0.9.2, WinXP, PHP 5, MySQL 4 oder so, Apache 2

    Ich vermute, dass der Firefox vielleicht
    <link rel="stylesheet" type="text/css" href="" media="print" />
    als <link rel="stylesheet" type="text/css" href="#" media="print" />
    interpretiert, was den zweiten Datensatz ohne Ausgabe erklären würde.

    Vielleicht hilft es href="" z.b. durch href="leere_datei.css" zu ersetzten, falls das der Fehler ist...
    However, mit dem link prefetching hat das mit Sicherheit nichts zu tun.

  • hallo,

    nach einer nacht schlaf ist mir das ganze jetzt doch klarer geworden.
    wie (fast) immer gilt: its not a bug, its a feature.......

    die datei wird 2 x geladen(und erzeugt somit auch zwei datensätze).

    die anweisung:

    <link rel="stylesheet" type="text/css" href="" media="print" />

    veranlasst firefox die bereits geladene datei (nachdem das skript zum ersten mal auf dem server ausgeführt wurde) erneut zu laden. das leere href wird wohl dabei wie anim sagt als
    href="#" interpretiert (oder durch die url der aufrufenden datei ersetzt).
    das erklärt auch, warum es keine ausgabe des zweiten durchlaufes gibt.
    <link veranlasst den browser die datei zu laden und den inhalt (meistens js oder css) für die ausführung im speicher zu halten.

    ich glaube das ist aber genau das link prefetching.

    es ist jetzt halt die frage ob dieser spezialfall (leeres href) wirklich die eigene seite neu laden sollte, oder ob der link aufruf komplet ignoriert werden sollte.
    wie gesagt der ie verhält sich so.....


    also danke fürs drauf schauen, mal wieder ein paar grundlagen durchgenommen und dazugelernt ;) .....

    lg,
    sebastian