Du bist nicht angemeldet (anmelden)
Seite 1
Session Problem mit IE
Ich habe gerade nach dieser Anleitung ein Login-Script gebaut mit Session. Funktioniert im Safari, Firefox, Netscape und IE7 auch alles. Aber ich habe auf meinem Windows Laptop zum Testen auch Multiple IEs mit 5, 5.5 und 6 laufen und in keinem klappt das Einloggen.
Die checkuser.php, die auf jeder Seite eingebunden wird und abfragt, ob in der Session eine user_id gesetzt ist leitet jedesmal wieder zum Login-Formular. Ganz offensichtlich ist also die Session nicht mehr da.
Ich habe den Zusammenhang zwischen Session und Cookie auch nicht recht kapiert. Im aktuellen Thread hier wird da ja was als Lösung vorgeschlagen mit Cookie.
Ist das mit den Sessions vielleicht ein gängiges Problem mit diesemvermaledeiten IE, der mit jedesmal den Spaß am Webkram gehörig vermiest oder liegt es evtl. an dieser Multiple IE Geschichte, eine bekannte Einschränkung, oder ist das Problem ganz einfach mit einer Cookie-Irgendwas zu beheben?
Ich wäre für Eure fachmännische Hilfe zutiefst dankbar.
Die checkuser.php, die auf jeder Seite eingebunden wird und abfragt, ob in der Session eine user_id gesetzt ist leitet jedesmal wieder zum Login-Formular. Ganz offensichtlich ist also die Session nicht mehr da.
Ich habe den Zusammenhang zwischen Session und Cookie auch nicht recht kapiert. Im aktuellen Thread hier wird da ja was als Lösung vorgeschlagen mit Cookie.
Ist das mit den Sessions vielleicht ein gängiges Problem mit diesem
Ich wäre für Eure fachmännische Hilfe zutiefst dankbar.
Es reizt mich immer wieder das in alle Kundenseiten einzubauen! 
Hast du, da diese multiblen IEs ja meistens „Tools“ bzw Installationspackete sind, abgecheckt ob da auch cookies gesetzt werden dürfen?
Normalerweise sind die ja nur da um kurz ein layout zu testen. Eventuell wurde, der Sicherheit wegen, da Cookieunterstützung deinstalliert, zusammengelegt oder was weis ich?
Hast du, da diese multiblen IEs ja meistens „Tools“ bzw Installationspackete sind, abgecheckt ob da auch cookies gesetzt werden dürfen?
Normalerweise sind die ja nur da um kurz ein layout zu testen. Eventuell wurde, der Sicherheit wegen, da Cookieunterstützung deinstalliert, zusammengelegt oder was weis ich?
Das ist ja ein Teil meiner Frage.
Ich bin vielleicht einen Schritt weiter. Vielleicht kann mir an der Stelle jemand weiterhelfen:
Wenn die login.php per header auf die eigentlich Seite umleitet habe ich nun die SID als Parameteran die URL gehängt
Vorher wars so, zum Vergleich
Mit angehängter SID funktioniert es im IE6. Sie wird auch in der Adresszeile bei IE ausgegeben, bei Safari und Firefox aber nicht.
Warum nicht? Macht das was? Dann könnte ich mir je eigentlich sparen, diesen Umweg auch nur im Falle des IE <= 6 zu machen, was ich eigentlich vorhatte.
Ich bin vielleicht einen Schritt weiter. Vielleicht kann mir an der Stelle jemand weiterhelfen:
Wenn die login.php per header auf die eigentlich Seite umleitet habe ich nun die SID als Parameteran die URL gehängt
header ("Location: student/index.php?" . htmlspecialchars(SID));
Vorher wars so, zum Vergleich
header ("Location: student/index.php?");
Mit angehängter SID funktioniert es im IE6. Sie wird auch in der Adresszeile bei IE ausgegeben, bei Safari und Firefox aber nicht.
Warum nicht? Macht das was? Dann könnte ich mir je eigentlich sparen, diesen Umweg auch nur im Falle des IE <= 6 zu machen, was ich eigentlich vorhatte.
Das habe ich mir auch gedacht. Aber wieso wird die SID dann nicht mal in der Adresszeile angezeigt obwohl ichs explizit anhänge? Also bei den anderen Browsern.
Hat denn niemand von Euch das Problem schon mal gehabt?
Hat denn niemand von Euch das Problem schon mal gehabt?
ich hab ein ähnliches login-system laufen und mit ie6 (normal installiert) keinerlei probleme.
ich würde deins ja gerne testen, leider ist mir am samstag mein mainboard abgeraucht und aufm netbook hab ich nur ie7
ich würde deins ja gerne testen, leider ist mir am samstag mein mainboard abgeraucht und aufm netbook hab ich nur ie7
Weil das grad passt: besteht ein wesentlicher Vorteil darin, Sessions selbst zu verwalten, also in der eigenen Datenbank mit nur einem (verfallenden) Hash-Cookie?
ja, so lässt sich der verfall besser kontrollieren und beobachten.
außerdem ist es einfacher, die session über mehrere server zu nutzen, die ggf. an einer lastverteilung beteiligt sind.
im http://www.tutorials.de/forum/php-tutori...sions.html wird leider eine weniger schöne sache gemacht, nämlich werte direkt aus dem request an die datenbank gegeben:
da braucht man dann eigentlich auch kein login-system.
dazu mal http://de.wikipedia.org/wiki/SQL-Injection und »prepared statements« anschauen.
außerdem ist es einfacher, die session über mehrere server zu nutzen, die ggf. an einer lastverteilung beteiligt sind.
im http://www.tutorials.de/forum/php-tutori...sions.html wird leider eine weniger schöne sache gemacht, nämlich werte direkt aus dem request an die datenbank gegeben:
WHERE "(Nickname like '".$_REQUEST["name"]."') AND
da braucht man dann eigentlich auch kein login-system.
dazu mal http://de.wikipedia.org/wiki/SQL-Injection und »prepared statements« anschauen.
Editiert: 28.07.09, 21:59 Uhr
da verwechselst du was mit cross-site-scripting (xss) / javascript injection.was soll die datenbank denn mit htmlentities anfangen? gerade für die an einer sql-injection beteiligten zeichen ' und ; gibt es ja keine html-entsprechung.
e: äh, hihi. es gibt natürlich unicode-darstellung der quotes, aber standardmäßig werden diese nicht umgewandelt.
d.h. z.b. müsstest du bei einer umwandlung auch wissen, mit welchen optionen das vorher passiert ist und wenn du einen string hast, stets merken, in welcher form er jetzt ist. das geht leicht mal durcheinander, wenn man sich nicht ständig neue variablen dazu macht und eben auch dann.
außerdem baust du dir dadurch einen unsinnigen overhead (1. mit den unnötigen variablen) und 2. wenn du z.b. mal nach user „peter müller“ suchen willst, musst du nach htmlentities('peter müller') suchen...
e2: ich hab auch grad bei php.net in den kommentaren gesehen, dass das massenweise dort so oder so ähnlich vorgeschlagen wird. sehr schön auch variationen:
$Output = mysql_escape_string(htmlentities(addslashes($String)));
