S4nCeZZ Geschrieben 14. Februar 2008 Geschrieben 14. Februar 2008 Hallo, ich habe einen Windows 2000 Server mit IIS und PHP 4.3.9. Einige Variablen möchte ich per Session übergeben login.php session_start (); $data = mysql_fetch_array ($result); $_SESSION["user_id"] = $data["ID"]; [/PHP] Diese Variable möchte ich in einer anderen PHP-Datei verwenden. ausgabe.php [PHP] session_start (); var_dump($_SESSION); Nur leider bekomme ich da keine gespeicherten Variablen ausgegeben! Die Variablen register_globals und track_vars sind in der PHP-Konfiguration eingeschaltet. Könnt ihr mir weiterhelfen? MfG S4nCeZZ Zitieren
Amstelchen Geschrieben 14. Februar 2008 Geschrieben 14. Februar 2008 überprüfe auf session_started() und die session_id(). verwendest du einen eigenen session-handler oder den vorgegebenen? s'Amstel Zitieren
S4nCeZZ Geschrieben 14. Februar 2008 Autor Geschrieben 14. Februar 2008 Wenn du mit Session-Handler den Sessionnamen meinst, den vorgegeben. session_start() bringt doch imemr true zurück, wie soll ich das überprüfen? Und wie session_id()? Zitieren
geloescht_JesterDay Geschrieben 14. Februar 2008 Geschrieben 14. Februar 2008 Die Variablen register_globals [...] sind in der PHP-Konfiguration eingeschaltet. Würd ich gleichmal ausschalten! Kann es sein, dass du keine Cookies annimmst? Das könntest du zum einen nachsehen im Browser. Da sollte es einen Cookie für deine Domain geben mit dem Namen php_sess_id (oder so). Da siehst du die SessionID. In PHP checkst du so ob die gleich ist: login.php session_start (); echo "Session ID: ". session_id() ."<br />"; $data = mysql_fetch_array ($result); $_SESSION["user_id"] = $data["ID"]; [/PHP] Diese Variable möchte ich in einer anderen PHP-Datei verwenden. ausgabe.php [PHP] session_start (); echo "Session ID: ". session_id() ."<br />"; var_dump($_SESSION); Nur wenn die in beiden Fällen gleich ist, hast du dieselbe Session. Zitieren
Amstelchen Geschrieben 14. Februar 2008 Geschrieben 14. Februar 2008 das von mir gemeinte bzgl. session_id hat ja JesterDay bereits detaillierter ausgeführt. mit dem session handler war die verarbeitung am server gemeint; diese kann von umgebung zu umgebung unterschiedlich sein, z.b. FILES (session.handler=files) oder benutzerdefiniert (session.handler=user) anstelle von GC (GET/COOKIE). s'Amstel Zitieren
S4nCeZZ Geschrieben 15. Februar 2008 Autor Geschrieben 15. Februar 2008 Ich habe mir die Session-IDs anzeigen lassen und diese sind von PHP-Datei zu PHP-Datei unterschiedlich. Woran kann das liegen? Zitieren
geloescht_JesterDay Geschrieben 15. Februar 2008 Geschrieben 15. Februar 2008 Woran kann das liegen? s.o. Nimmst du Cookies an? Im Normalfall beruht eine Session auf einem Cookie, in dem die SessionID gespeichert und bei jedem aufruf an den Server (mit)gesendet wird. Zitieren
S4nCeZZ Geschrieben 15. Februar 2008 Autor Geschrieben 15. Februar 2008 Ja, die Cookies werden vom Browser akzeptiert. Aber in dem Verzeichnis ist keiner vorhanden zu der Seite. Zitieren
geloescht_JesterDay Geschrieben 15. Februar 2008 Geschrieben 15. Februar 2008 Ja, die Cookies werden vom Browser akzeptiert. Aber in dem Verzeichnis ist keiner vorhanden zu der Seite. Ist vielleicht für diese Seite ein Ausnahme eingestellt (also davon keine Cookies anzunehmen)? Ist das was du da oben geschrieben hast alles was bei der login.php geschieht? Der session_start (bzw jedes Cookie setzen) muss vor allen evtl. Ausgaben auf der Seite geschehen. Kommen da vielleicht irgendwelche Fehlermeldungen? Oder hast du alle Meldungen abgeschalten bzw unterdrückt? Zitieren
S4nCeZZ Geschrieben 15. Februar 2008 Autor Geschrieben 15. Februar 2008 Ist vielleicht für diese Seite ein Ausnahme eingestellt (also davon keine Cookies anzunehmen)? Ist das was du da oben geschrieben hast alles was bei der login.php geschieht? Der session_start (bzw jedes Cookie setzen) muss vor allen evtl. Ausgaben auf der Seite geschehen. Kommen da vielleicht irgendwelche Fehlermeldungen? Oder hast du alle Meldungen abgeschalten bzw unterdrückt? Nein, keine Ausnahmen! Nein, ich habe nur einen Auszug genommen, aber der Rest ist irrelevant eigentlich für die Funktionsweise von Session. session_start() steht in allen Dateien an erster Stelle! Sonst würde eine Fehlermeldung kommen ;-) Nein, es kommt kein einziger Fehler. Darum verstehe ich es auch nicht. Zitieren
geloescht_JesterDay Geschrieben 15. Februar 2008 Geschrieben 15. Februar 2008 Nein, es kommt kein einziger Fehler. Darum verstehe ich es auch nicht. Dann kann ich dir nur empfehlen: Nimm den Firefox + LiveHTTPHeaders Erweiterung und sieh dir an, was der Server an den Browser sendet bzw ob der einen Cookie sendet. Wenn ja dann liegt es an deinen Browsereinstellungen, wenn Nein an den Server-/PHP-Einstellungen Zitieren
S4nCeZZ Geschrieben 15. Februar 2008 Autor Geschrieben 15. Februar 2008 So allgemein konnte ich es mir auch schon erklären! Ich will genau wissen was ich umstellen muss an der PHP-Config... MfG S4nCeZZ Zitieren
xmurrix Geschrieben 17. Februar 2008 Geschrieben 17. Februar 2008 Überprüfe doch mal in der php.ini die Werte für session.save_handler, session.save_path und session.use_cookies. Folgende Einstellungen sollten drin stehen: session.save_handler = "files" ; kann auch ein anderer ordner sein (hier braucht php schreibrechte) session.save_path = "C:\\WINDOWS\\Temp" ; sonst wird die sessionid nicht mit dem cookie übertragen. session.use_cookies = 1 [/PHP] Gruß xmurrix Zitieren
geloescht_JesterDay Geschrieben 18. Februar 2008 Geschrieben 18. Februar 2008 So allgemein konnte ich es mir auch schon erklären! Ich will genau wissen was ich umstellen muss an der PHP-Config... Das ist ja schön für dich, aber um dir das sagen zu können solltest du erstmal wissen was überhaupt nicht so läuft wie es eigentlich laufen sollte. Ich kann dir keine Lösung nennen, wenn du mir vorher nicht dein Problem nennst (und "Cookies gehen nicht!" ist keine akzeptable Problembeschreibung!) Das einzige was du so bekommen wirst, sind etliche Möglichkeiten, die du dann solange durchprobieren kannst, bis es irgendwann geht. Wenn du wirklich an einer Lösung interessiert bist, solltest du auch daran interessiert sein dein Problem genau einzugrenzen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.