wahsaga: Cookies funktioniert mit Win und Linux, aber nicht unter Mac OS

Beitrag lesen

hi,

Das PHP-Script generiert eine Seite, in der bei korrektem Login wieder JavaScript-Code steht, und dieser JavaScript-Code setzt das Cookie "robin".

gibt's einen grund, warum du das cookie setzen per javascript erledigen lässt - anstatt des direkt vom PHP-script aus zu setzen?

print "document.cookie=".chr(34)."robin".chr(34).";\n";

ein cookie sollte m.E. mindestens aus einem name=wert-paar bestehen - du gibst hier aber ausschließlich einen namen an.
selbst wenn du den wert leer lassen willst - das gleichheitszeichen würde ich beim setzen aber trotzdem verwenden.

if (!(document.cookie=="robin")) {
parent.quicknav.location.href="../html/quicknav-l.html";

sicher, dass document.cookie immer _ausschließlich_ den text "robin" enthält ...? (mal geprüft, alert o.ä.?)

Wie zu sehen, erfolgt eine Weiterleitung zur Datei "quicknav-l.html", wenn das Cookie nicht "robin" ist. Dort ist dann das Login-Formular. Ansonsten erscheint das Menü des internen Bereichs und alles ist gut.

noch mal die frage: warum javascript für diese funktionalität?

das "weiterleiten" könnte man doch genauso gut serverseitig machen - in abhängigkeit davon, ob der client im request den cookie mitschickt oder nicht.

So... Wie gesagt funktioniert diese Methode mit Internet Explorer, Mozilla/Firefox/Netscape, Konqueror und diversen Linux-Textbrowsern, aber nicht unter Mac OS, sowohl mit Safari als auch dem dortigen IE.

könnte mir das nicht vorhandene gleichheitszeichen beim setzen als ursache vorstellen; und ob die abfrage auf exakte gleichheit in ordnung ist, wage ich auch zu bezweifeln.

insgesamt würde ich dir raten, die gesamte funktionalität von PHP erledigen zu lassen; auf javascript kann hier m.E. problemlos verzichtet werden.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }