Forum Doku Wiki Blog

Forumsarchiv 2006, Dezember
Probleme mit Netsape 4

archivierte Beiträge lesen

  1. (PHP) Probleme mit Netsape 4 von diverslung, 22. 12. 2006, 15:55

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 15:55 Uhr von diverslung veröffentlicht.

Hallo allerseits!

Ich habe folgendes Problem:

<?php
session_start();
include 'sessionhelpers.inc.php';

$sql = "SELECT
    UserName,
    UserPass,
    UserMail,
    UserSex,
    Vorname,
    Nachname
FROM
    users
WHERE UserSession='".session_id()."' LIMIT 1";

$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)"

$result = mysql_fetch_assoc($sth);

// ab hier passiert nix mehr:
// echo $result; schreibt z.B. im IE "Array", in NS4 nichts
// if (!$result) {echo 'nix';}; schreibt in NS4 "nix"
// var_dump($result); schreibt "bool(false)"

$UserName = $result['UserName'];
$UserPass = $result['UserPass'];
$UserMail = $result['UserMail'];
$UserSex = $result['UserSex'];
$Vorname = $result['Vorname'];
$Nachname = $result['Nachname'];

// 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
?>

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???

Vielleicht hat von Euch jemand 'ne Idee
Danke im Voraus

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 16:40 Uhr von Daniel unreg veröffentlicht.

Hallo,

Wenn es sich um ein browserproblem handelt wäre der Code, den der Browser tatsächlich verarbeitet (sprich: HTML) sinnvoller.

> 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.

Das Problem scheint also am Formular zu liegen.

Allerdings eine Frage: Warum Netscape 4 noch unterstützen? Hast du noch so viele Besucher die diesen Browser verwenden?
Wenn nicht rate ich dir, die Unterstützung dafür einfach zu vergessen. Netscape 4 ist schon lange tot.

> 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???

Kann nicht, der browser macht vermutlich einen Fehler bei der Interpretierung des Formulars.

Gruß;

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 17:42 Uhr von diverslung veröffentlicht.

Hallo,

erstmal Danke für die Antwort, aber
nischt iss mit Formular...

auch, wenn ich sämtlichen weiteren Quelltext weglasse und nur mit var_dumb prüfe - der Fehler bleibt der selbe.

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 17:55 Uhr von Ingo Turski veröffentlicht.

Hi,

> auch, wenn ich sämtlichen weiteren Quelltext weglasse und nur mit var_dumb prüfe - der Fehler bleibt der selbe.
Die Daten kommen doch wohl vom Browser und bestimmte Browser werden sie über Dein Formular nicht so gesendet haben, wie Du es erartest. Prüfe das Formular und was zurückgegeben wird.

freundliche Grüße
Ingo
--
[barrierefreie Ingo Webdesign » Suchmaschinenoptimierung | em? | IE7 - Bugs]

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 18:20 Uhr von diverslung veröffentlicht.

> Hi,
>
> > auch, wenn ich sämtlichen weiteren Quelltext weglasse und nur mit var_dumb prüfe - der Fehler bleibt der selbe.
> Die Daten kommen doch wohl vom Browser und bestimmte Browser werden sie über Dein Formular nicht so gesendet haben, wie Du es erartest. Prüfe das Formular und was zurückgegeben wird.
>
> freundliche Grüße
> Ingo

Hallo Ingo,

ich stehe gerade auf der Leitung: wie bitte meinst Du das mit dem Formular?
Ich habe hier kein Formular verwendet. Die Daten existieren ja bereits in der Mysql-Datenbank und da kann es keine Fehler/Fehleintragungen geben. Das Script soll diese Daten lediglich auslesen und als Variablen zur Verfügung stellen - eine absolute Standard-Funktion.

Also wie gesagt: Wenn ich den Quelltext genau so wie er obig ist, als PHP-Datei speichere und im NS4 ausführe, dann ergeben sich die erwähnten (und im Quelltext oben auskommentierten) Symptome.

Ich geb' mir gleich die Kugel: Es muss doch schonmal jemand eine ähnliche Funktion geschrieben haben, die auch in NS4 funktioniert.

Hilfe!

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 18:35 Uhr von Ingo Turski veröffentlicht.

Hi,

> ich stehe gerade auf der Leitung: wie bitte meinst Du das mit dem Formular?
> Ich habe hier kein Formular verwendet. Die Daten existieren ja bereits in der Mysql-Datenbank und da kann es keine Fehler/Fehleintragungen geben.
Bist Du sicher? Und wie kamen die darein? Wohl kaum per PHPmyAdmin, oder?

> Also wie gesagt: Wenn ich den Quelltext genau so wie er obig ist, als PHP-Datei speichere und im NS4 ausführe
Ein Browser führt kein PHP-Script aus. Er ruft es auf und übergibt ggfls. Daten an das Script. Diese musst Du prüfen - was kommt warum vom Browser an?

freundliche Grüße
Ingo
--
[barrierefreie Ingo Webdesign » Suchmaschinenoptimierung | em? | IE7 - Bugs]

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 19:28 Uhr von diverslung veröffentlicht.

Hi Ingo,

ehrlich gesagt versteh ich nicht, was Du meinst.
Natürlich habe ich irgendwann mit einem Formular Daten in die Datenbank geschrieben, aber das kann lange her sein und ist mit den verschiedensten Browsern geschehen. Den Daten ist doch egal, mit welchem Formular sie in die Datenbank geschrieben wurden:
In der Datenbank liegen doch nur reine strings oder integer-Werte, die ich im Übrigen immer auch in PHPmyAdmin kontrolliere. Wie sollen da Fehler entstehen??? - zumal ja alle anderen Browser das Auslesen problemlos über die Bühne bringen.

Also nochmal: Die Daten existieren in der Datenbank und sind fehlerfrei. Es handelt sich lediglich um eine hart codierte mysql-Abfrage innerhalb einer PHP-Datei.

>>Ein Browser führt kein PHP-Script aus. Er ruft es auf und übergibt ggfls. Daten an das Script.

Das ist mir schon klar und doch scheint es dann Unterschiede in der Aufruf-Routine zu geben.

Probleme mit Netsape 4

Der folgende Beitrag wurde am 23. 12. 2006, 01:05 Uhr von Sven Rautenberg veröffentlicht.

Moin!

> Also nochmal: Die Daten existieren in der Datenbank und sind fehlerfrei. Es handelt sich lediglich um eine hart codierte mysql-Abfrage innerhalb einer PHP-Datei.

Trotzdem kriegt es der NS4 nicht hin, sie auszugeben.

Daraus folgt zwingend: Irgendetwas unterscheidet sich beim Aufruf zwischen dem NS4 und anderen Browsern.

Und genau diesen Unterschied herauszufinden ist deine Aufgabe.

Da aber alle Browser mit dem Server nur HTTP sprechen können, und das Skript ja offenbar in beiden Fällen ausgeführt wird, kann der einzige Unterschied in den Aufrufen nur in den vom Browser übermittelten Daten liegen.

Also in den Werten, die dir in $_GET, $_POST und $_COOKIE zur Verfügung stehen.

Lass dir diese drei Arrays mit var_dump zusätzlich am Skriptanfang ausgeben, und vergleiche sie. Du wirst vermutlich Unterschiede entdecken. Und diese Unterschiede sind dann der Grund für das unterschiedliche Verhalten deines Skripts.

Ach ja, noch zu deiner Bemerkung hier: http://forum.de.selfhtml.org/?t=142723&m=927342
"Mit Cookies arbeite ich nicht und die aktuelle Session liest selbst der NS 4 per session_id() problemlos aus."

Natürlich arbeitest du mit Cookies! PHP nutzt Cookies standardmäßig zur Realisierung der Session, also arbeitest du mit Cookies - wenngleich dir das nicht unbedingt bewußt ist. Es wäre dir bewußt, wenn du PHP bewußt so eingestellt hättest, dass absichtlich KEINE Cookies verwendet werden würden.

Da du aber, entgegen deiner Annahme, doch mit Cookies arbeitest, hat das Browserverhalten bei Cookies natürlich auch Auswirkungen auf das Verhalten deines Skriptes.

 - Sven Rautenberg
--
"Love your nation - respect the others."

Probleme mit Netsape 4

Der folgende Beitrag wurde am 23. 12. 2006, 11:52 Uhr von diverslung veröffentlicht.

Hallo und Danke für die Hilfe!

> Lass dir diese drei Arrays mit var_dump zusätzlich am Skriptanfang ausgeben, und vergleiche sie. Du wirst vermutlich Unterschiede entdecken. Und diese Unterschiede sind dann der Grund für das unterschiedliche Verhalten deines Skripts.

Hab ich gemacht und siehe da:
var_dump($_GET); schreibt überall "array(0) { }"
var_dump($_POST); schreibt überall "array(0) { }"
var_dump($_COOKIE); schreibt im IE "array(1) { ["PHPSESSID"]=> string(32) "0024a438352d8eb6622474127801c05a" }" und bei NS 4 "array(0) { }"

> Natürlich arbeitest du mit Cookies! PHP nutzt Cookies standardmäßig zur Realisierung der Session, also arbeitest du mit Cookies - wenngleich dir das nicht unbedingt bewußt ist.
> Da du aber, entgegen deiner Annahme, doch mit Cookies arbeitest, hat das Browserverhalten bei Cookies natürlich auch Auswirkungen auf das Verhalten deines Skriptes.

Das wußte ich nicht und daher mein Fehler:
In meinem NS 4 waren Cookies deaktiviert!!!
(Isch schämme misch..)

Solch eine Offenbahrung noch kurz vorm Fest  -
Danke für Eure Hilfe Jungs!
Wünsche Euch alle eine besinnliche Weihnachtszeit.

Probleme mit Netsape 4

Der folgende Beitrag wurde am 23. 12. 2006, 13:27 Uhr von Ingo Turski veröffentlicht.

Hi,

> Das wußte ich nicht und daher mein Fehler:
> In meinem NS 4 waren Cookies deaktiviert!!!
> (Isch schämme misch..)
>
> Solch eine Offenbahrung noch kurz vorm Fest  -
dann gleich die nächste Offenbarung: auch in anderen (aktuellen) Browsern lassen sich Cookies deaktivieren. Es sollte Deine Aufgabe sein, dafür zu sorgen, dass die Session dann in der URL übertragen wird. Dies geschieht bei HTML normalerweise automatisch, aber bei generierten Ausgaben musst Du die Konstante SID nutzen.

freundliche Grüße
Ingo
--
[barrierefreie Ingo Webdesign » Suchmaschinenoptimierung | em? | IE7 - Bugs]

Probleme mit Netsape 4

Der folgende Beitrag wurde am 23. 12. 2006, 15:01 Uhr von diverslung veröffentlicht.

Hi,

> dann gleich die nächste Offenbarung: auch in anderen (aktuellen) Browsern lassen sich Cookies deaktivieren. Es sollte Deine Aufgabe sein, dafür zu sorgen, dass die Session dann in der URL übertragen wird. Dies geschieht bei HTML normalerweise automatisch, aber bei generierten Ausgaben musst Du die Konstante SID nutzen.

Die entsprechende PHP-Datei wir durch ein JavaScript-aufgerufen:

if(Ziel == 4){var URL = "http://[...]/kontodaten.php?PHPSESSID=<?php echo session_id(); ?>";}
parent.main.location.href=URL;

Das bedeutet: die SessionID müßte theoretisch mit übertragen werden. Mit

 echo('<BR>'.$_SERVER[REQUEST_URI]);

sehe ich, dass sie auch korrekt übergeben wurde, dennoch funktioniert das Fallback so nicht.
An die Server- und PHPeinstellungen komme ich leider nicht heran, sodass ich etwaige PHP-Zusatzmodule nicht installieren kann. Wie könnte ich das sonst lösen?

Gruß

Probleme mit Netsape 4

Der folgende Beitrag wurde am 23. 12. 2006, 20:49 Uhr von Ingo Turski veröffentlicht.

Hi,

> Die entsprechende PHP-Datei wir durch ein JavaScript-aufgerufen:
Und Du bist sicher, dass Javascript aktiviert ist?

> if(Ziel == 4){var URL = "http://[...]/kontodaten.php?PHPSESSID=<?php echo session_id(); ?>";}
warum nicht URL = "http://[...]/kontodaten.php?<?php echo SID; ?>" ?

freundliche Grüße
Ingo
--
[barrierefreie Ingo Webdesign » Suchmaschinenoptimierung | em? | IE7 - Bugs]

Probleme mit Netsape 4

Der folgende Beitrag wurde am 23. 12. 2006, 23:51 Uhr von diverslung veröffentlicht.

Hi,

> Und Du bist sicher, dass Javascript aktiviert ist?

Yep - sonst würde die Date ja auch gar nicht aufgerufen werden...

> warum nicht URL = "http://[...]/kontodaten.php?<?php echo SID; ?>" ?

Weil da offenbar nichts übergeben wird: Weder erscheint so die Session-ID im sich ergebenden HTML-Quelltext, noch wird der URL-Anhang übergeben - wie auch...

Bei meiner Version mit dem "?PHPSESSID=<?php echo session_id(); ?>" geht wenigsten noch das...

Gruß

Probleme mit Netsape 4

Der folgende Beitrag wurde am 24. 12. 2006, 17:08 Uhr von Auge veröffentlicht.

Hallo

> > Und Du bist sicher, dass Javascript aktiviert ist?
>
> Yep - sonst würde die Date ja auch gar nicht aufgerufen werden...

Und du weißt, dass das bei _allen_Anderen_, die deine Seite nutzen, auch so ist?

> > warum nicht URL = "http://[...]/kontodaten.php?<?php echo SID; ?>" ?
> ...
> Bei meiner Version mit dem "?PHPSESSID=<?php echo session_id(); ?>" geht wenigsten noch das...

Das Bereitstehen von SID wird in der php.ini geregelt. Aber auf diese hast du ja, wie du bereits anmerktest, keinen Zugriff.

Tschö, Auge

--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)

Veranstaltungsdatenbank Vdb 0.1

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 18:48 Uhr von dedlfix veröffentlicht.

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";

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 19:54 Uhr von diverslung veröffentlicht.

Hi,

> 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.

auf diese Deine Anregung hin habe ich den include() rausgenommen und den Connect zur Datenbank direkt im Script notiert - damit Doppelungen ausgeschlossen sind.
Härter kann man ein Script nun nicht mehr codieren - sowas wie css etc. gibts nicht mehr. Ohne Ergebnis!
Bleibt alles beim Alten.

Danke trotzdem

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 19:07 Uhr von Daniel unreg veröffentlicht.

Hallo,

ich glaube ich ahbe da ein bisschen was durcheinandergebracht.

Es könnte sein, dass der Netscape 4 Probleme hat die Session(-Cookie)s zu verarbeiten und du deswegen einen Leeren Ergebnissatz erhälst.

Gruß;

Probleme mit Netsape 4

Der folgende Beitrag wurde am 22. 12. 2006, 19:39 Uhr von diverslung veröffentlicht.

Hi,

> Es könnte sein, dass der Netscape 4 Probleme hat die Session(-Cookie)s zu verarbeiten und du deswegen einen Leeren Ergebnissatz erhälst.

Mit Cookies arbeite ich nicht und die aktuelle Session liest selbst der NS 4 per session_id() problemlos aus.
Aber Leer schein der Ergebnissatz in jedem Fall zu sein.

Gruß

Probleme mit Netsape 4

Der folgende Beitrag wurde am 23. 12. 2006, 01:03 Uhr von Ingo Turski veröffentlicht.

Hi,

> Mit Cookies arbeite ich nicht
natürlich doch. session_start() versucht einen Cookie zu setzen und auszulesen!

freundliche Grüße
Ingo
--
[barrierefreie Ingo Webdesign » Suchmaschinenoptimierung | em? | IE7 - Bugs]

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4