dedlfix: Probleme mit Netsape 4

Beitrag lesen

echo $begrüßung;

$sth = mysql_query($sql) or die (mysql_error());
// bis hierher klappts: echo $sth; schreibt "Resource id #3"
// aber: var_dump(mysql_num_rows($sth)); schreibt "int(0)"

Auch ein leeres Result-Set zählt zu den erfolgreichen Ausführungen. Diese von die beobachtete Kombination ist nichts ungewöhnliches.

$result = mysql_fetch_assoc($sth);
// ab hier passiert nix mehr:
// echo $result; schreibt z.B. im IE "Array", in NS4 nichts

echo oder print() auf ein Array anzuwenden ist nicht sinnvoll. print_r() und var_dump() sind geeigneter.

// mit $result = mysql_fetch_array($sth); und entsprechenden Veränderungen funktionierts auch nicht
// mit $result = mysql_fetch_row($sth); und entsprechenden Veränderungen funktionierts auch nicht

Ein leeres Result-Set bleibt leer, auch wenn du die Abfragemethode änderst.

obiges Script liest einen Datensatz aus meiner Datenbank und gibt sie als PHP-Variablen aus. In allen neueren Browser klappt das ohne Probleme - nur Netscape 4 scheint die Variablen nicht belegen zu wollen.
Ich habe keine Ahnung, wo das Problem liegen könnte: keine Fehlermeldungen - nichts! Wie kann es überhaupt sein, dass Browser solch serverseitige Scripte unterschiedlich interpretieren???

Der Browser interpretiert dein Script nicht. Er schickt nur Requests zum Server. Finde den Unterschied zwischen dem Request-Response-Verhalten (bzw. der dabei mitgeschickten Daten) des NN4 und Browsern bei denen es funktioniert. Du könntest dazu beispielsweise bei Aufruf des Scripts den Inhalt von $_SERVER in eine Datei loggen, oder einen Netzwerksniffer einsetzen, oder ein Tool wie livehttpheaders für den NN4 suchen.

Bei einem von mir untersuchten Fall browserabhängiger Scriptausführung stellte es sich nach langem Suchen heraus, dass aufgrund einer fehlerhaften Ressourcen-Referenzierung (sprich: CSS-Datei, Bild oder sowas ähnliches) das Script zweimal aufgerufen wurde: einmal gewollt und dabei ein zweites Mal durch die falsche Einbindung. Ein Browser holte daraufhin das Dokument neu, ein anderer ignorierte die Einbindung.

echo "$verabschiedung $name";