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