Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP 4.3.9 - Session

Empfohlene Antworten

Veröffentlicht

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

überprüfe auf session_started() und die session_id(). verwendest du einen eigenen session-handler oder den vorgegebenen?

s'Amstel

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()?

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.

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

Ich habe mir die Session-IDs anzeigen lassen und diese sind von PHP-Datei zu PHP-Datei unterschiedlich.

Woran kann das liegen?

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.

Ja, die Cookies werden vom Browser akzeptiert.

Aber in dem Verzeichnis ist keiner vorhanden zu der Seite.

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?

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.

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

So allgemein konnte ich es mir auch schon erklären!

Ich will genau wissen was ich umstellen muss an der PHP-Config...

MfG

S4nCeZZ

Ü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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.