ERLEDIGT
JA
JA
ANTWORTEN
28
28
ZUGRIFFE
1346
1346
EMPFEHLEN
-
30.09.09 14:31 #16Das "lustige" daran ist, dass in der Adresszeile der Name der "Login-Formular"-Seite drin stehen bleibt (index2.php). Und man kann sich keinen Quelltext anzeigen lassen, auch mehrmaliger Aufruf von Ansicht > Quelltext bringt da nichts...Im Quelltext steht nichts? Bei welchem Aufruf (direkt ohne Session, direkt mit gültiger Session, direkt mit abgelaufener Session)? Ohne oder mit abgelaufener musst du daran denken, dass er weiterleitet, eventuell auf eine leere Seite.
Weitergeleitet wird, wie du vielleicht im Source-Code gesehen hast, nach setzen der ganzen Session-Variablen. Und es befindet sich auf jeder Seite ganz am Anfang ein session_start();
Wenn ich nur die HTML-Elemente lasse, zeigt er die Seite bei gleichem Aufruf richtig an. So war es ja auch mit der originalen, wenn ich die login.php direkt aufgerufen habe (und natürlich die Userdaten schon fix eingegeben habe).Das Hallo davor macht die Seite natürlich invalide. Vielleicht etwas im Markup, dass IE erst beim zweiten Durchlauf versteht? Teste nur das Markup in einer einfachen .htm
Wie würdest du dir das erklären, wenn er etwas erst "beim 2. Mal" versteht?
lg
-
So etwas hatte bisher immer mit der Session bei mir zu tun, welche durch Weiterleitung die Cookies nicht an den Browser ausliefern konnte. Daher meine Frage in welchem Zustand die Seite aufgerufen wurde. Das dort ein session_start() steht ist mir bewusst. Lässt du die Cookies bestehen und hast immer eine gültige Session-ID drin, oder löscht du diese jedes mal?
Du solltest dir einmal die empfangenen Header ansehen. Geht bei deinem Fall per PHP, indem headers_list() in einer Datei gespeichert wird. Das sollte einigen Aufschluss geben.Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
30.09.09 15:47 #18
Ich setze einmal in der login.php bei erfolgreichem Login 4 Session-Variablen (= Cookies?) Unteranderem $_SESSION["user_id"], wo die User-Id aus der Datenbank gespeichert wird. Diese wird bei jedem Aufruf abgefragt, ob sie gesetzt ist, und falls nicht, ist ja niemand eingeloggt, und der wird auf die index-Seite zurückverwiesen. Erst dann beim Klick auf Logout (oder automatisch nach 15 Minuten) wird die logout.php aufgerufen, wo
drin steht. Diese Befehle sind sonst nirgends vorhanden.PHP-Code:session_start ();
session_unset ();
session_destroy ();
Mit dem headers_list() hab ich 3 mal das gleiche herausbekommen. Habnach jedem session_start(); (also gleich zu Beginn) bei index2.php, login.php und intern.php eingefügt. 3 Mal das hier bekommen:PHP-Code:var_dump(headers_list());
Code :1 2 3 4 5 6
array(4) { [0]=> string(24) "X-Powered-By: PHP/5.2.10" [1]=> string(38) "Expires: Thu, 19 Nov 1981 08:52:00 GMT" [2]=> string(77) "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" [3]=> string(16) "Pragma: no-cache" }
Was bedeutet das jetzt?
lg
-
Du siehst dort keine Cookies (für die Session) und auch keine Location (für das Redirect). Das bedeutet du hattest schon eine am laufen oder es wird keine erstellt.
(Zu Prüfen mit getallheaders())
Sind das die Header-Daten am Ende vom Skript bzw. vor einem exit() ?Geändert von ZodiacXP (30.09.09 um 18:32 Uhr)
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
30.09.09 19:06 #20
Also die Daten von vorher, die hat er alle bei var_dump(headers_list()) direkt nach session_start(); ausgegeben.
Wenn ich nach session_start() auf der index-Seite (ohne eingeloggt zu sein) getallheaders() ausgebe, kommt folgendes:
Also hat er hier offensichtlich noch eine Session offen von früher offen oder?PHP-Code:array(10) {
["Host"] => string(11) "[..url...]"
["User-Agent"] => string(85) "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
["Accept"]=> string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
["Accept-Language"]=> string(35) "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"
["Accept-Encoding"]=> string(12) "gzip,deflate"
["Accept-Charset"]=> string(30) "ISO-8859-1,utf-8;q=0.7,*;q=0.7"
["Keep-Alive"]=> string(3) "300"
["Connection"]=> string(10) "keep-alive"
["Cookie"]=> string(42) "PHPSESSID=5c8977dc4f94994928e34c0722bd56e8" ["Cache-Control"]=> string(9) "max-age=0"
}
-
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
30.09.09 21:27 #22
Ach das wird ja mal wieder eine lustige Suche

Zusammengefasst heißt das, dass er (höchstwahrscheinlich) deshalb falsch reagiert, weil noch ein altes Session-Cookie vorhanden ist, richtig? Wie und wann sollte ich denn alles was mit Session zu tun hat rücksetzen/löschen? Es müsste doch eigentlich reichen, wenn die logout.php aufgerufen wird oder?
lg
-
Klar. Diese löscht die Session und unter Umständen auch das Cookie. Hab das bei IE6 nie mir angesehen.
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
06.10.09 18:55 #24
Hallo wieder mal,
hab jetzt folgendes beobachtet:
Wenn ich den IE 6 öffne, und mich einlogge funktioniert alles wie gewünscht, da er direkt nach dem Start ja keine Session gestartet/gespeichert hat. Dann tritt wieder (allersdings genauso unregelmäßig wie vorher) das übliche Problem auf, das er die intern.php nicht aktualisiert, obwohl die Seite einfach immer nur per GET-Parameter beeinflusst wird. Keine Ahnung warum.
Und was mir jetzt aufgefallen ist, sowohl im IE als auch im FF, dass nach der logout.php im Header die PHPSESSID noch immer die gleiche SessionID von vorher drin steht. Ist das normal bzw. könnte das das Problem sein?
Lg Andi
-
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
06.10.09 20:05 #26
Das Script ist vollkommen fertig, und nicht gerade wenig.
Habs leider versäumt von Beginn an mit IE 6 zu testen. Ich hab's prinzipiell auch so gemacht, dass ich alles bzgl. Session usw. am Anfang geregelt habe. Hab mich auch an ein Tutorial von hier gehalten, praktisch 1:1 übernommen, nur Bezeichnungen usw. geändert...
-
10.10.09 17:10 #27
Das nahezu Unmögliche ist geschehen

Das Problem war folgendes:
Der Grund, warum die Seite nicht aktualisiert wurde, ist, dass der IE6 dieses meta Tag nicht verstanden hat:
Dann hab ich ausprobiert, ob der dieses versteht:HTML-Code:<meta http-equiv="content-Type" content="text/html; charset=utf-8">
und siehe da, es geht! Der FF zeigts in utf-8 an, der IE im ISO Format.HTML-Code:<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Ich hab's jetzt mal vorläufig so gelöst:
Zwar nicht gerade sauber, aber was solls.HTML-Code:<!--[if lte IE 6]><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><![endif]--> <meta http-equiv="content-Type" content="text/html; charset=utf-8">
Das einzige Problem, das ich nun noch beheben muss, ist, dass alle Umlaute im IE nicht korrekt dargestellt werden. Wie löse ich das am besten?
Gibt es php-Funktionen, die die Ausgabe berichtigen, oder soll ich die Umlaute vorm Abspeichern in der Datenbank durch ä etc. ersetzen? Oder wäre es besser überhaupt ins Iso-Format zu wechseln?
Lg
-
Browser irgendwie erkennen und vorher in PHP utf8_encode oder utf8_decode anwenden.
Aber das IE6 UTF-8 nicht versteht hätte ich nie gedacht. Vielleicht gefällt ihm auch nicht das utf klein geschrieben ist oder das T bei Type groß.Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
11.10.09 12:59 #29
Das mit groß/klein war's nicht. Verwende jetzt einfach für alle Browser das ISO-Format, hab's in der DB auch so eingestellt, und nun geht alles so wie's soll

Lange und schwere Geburt war das
Aber....das Baby is raus
Danke für die zahlreichen, hilfreichen Beiträge, besonders von dir Zod
Lg Andi
Ähnliche Themen
-
echo-Anzeigen dann header('Location') ob_start() Problem
Von dwex im Forum PHPAntworten: 8Letzter Beitrag: 02.11.09, 20:41 -
IE Problem mit header-location
Von Hattrix im Forum PHPAntworten: 6Letzter Beitrag: 11.07.07, 15:02 -
header("location... Problem
Von Katzehuhn im Forum PHPAntworten: 7Letzter Beitrag: 19.06.05, 13:15 -
Problem mit: Header("Location: main.php");
Von NetPerformance im Forum PHPAntworten: 6Letzter Beitrag: 10.02.05, 21:33 -
header ("Location: ..") - Problem (Serverproblem?)
Von davec im Forum PHPAntworten: 14Letzter Beitrag: 16.09.04, 02:36





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren