Cornelia de Vos: KEINE SESSION-IDs

Beitrag lesen

KEINE SESSION-IDs

Ich habe gestern den ganzen Tag im Web nach einer Lösung zu meinem Problem gesucht, aber keine gefunden ... habe aber einige Einträge in verschiedenen Foren gefunden, die dasselbe Problem hatte und zu keiner Lösung kamen - und ich bin dann selber zu einer Lösung gekommen. Daher mein Eintrag hier: falls andere Leute genauso verzweifelt nach einer Lösung suchen und das hier lesen, sparen sie sich vielleicht die stundenlange Suche, die ich hinter mir habe.

Meine Konfiguration lokal auf meinem PC zum Entwickeln der Seiten war: Win XP, Apache Server 2.0.54 und PHP 5.0.5

Mein Problem war, dass keine Session-IDs von einem PHP-Script zum anderen weitergereicht wurden. Weder per URL noch per Cookie. Ich habe in meinen php-Scripten alles versucht, alles getestet, bin jedem kleinen Hinweis, den ich in den Foren etc. gefunden  habe nachgegangen - die Session-IDs blieben verschwunden. Ich konnte sie auch nicht abfragen. SID war immer leer, auch session_id() ergab keinen Wert, $_SESSION["blabla"] war dem Script, mit dem ich das weiterverarbeiten wollte nicht bekannt (leer) usw.

Allmählich kam in mir der Verdacht auf, an meiner Konfiguration könnte etwas nicht stimmen. In PHP.ini war die session.save_path korrekt eingestellt (session.save_path = C:\temp) (so heißt das Verzeichnis auf meiner HD). Ich habe alle Einstellunge x Mal geprüft, auch mal verändert, geprüft ... nichts. Keine Session-IDs. Auch weitere Parameter habe ich überprüft, ich konnte den Fehler einfach nicht finden. Auch das 'alte' session-Handling mit session_register() und unregister usw. habe ich nicht mit $_SESSION vermengt usw. usw...
Schließlich dachte ich, es könnte an meiner Symantec Norton Internet Security liegen (das mir vorher schon bei meinen Javascripten mit automatisch generiertem Code dazwischengefunkt hatte) oder an den Cookie-Einstellungen im IE, habe alles Mögliche probiert - kein Erfolg.

Ich habe meine Files dann auf den Web-Server geladen, wo sie mal laufen sollen wenn sie fertig sind, und dort funktionierte alles einwandfrei, die Session-IDs wurden weitergereicht. Also nur lokal bei mir funktionierten die Sessions nicht.
Das erhärtete den Verdacht, die Konfiguration stimmt nicht. Nachdem ich Stunden über Stunden gesucht habe, entschied ich mich, das Ganze (Apache und PHP) neu zu installieren. Da der Webserver, auf dem die Scripten laufen sollen, mit der älteren Version PHP 4.3.10 läuft, habe ich mir nun unter Win XP installiert: Apache Server 2.0.54 und PHP 4.3.10 (statt 5.0.5)

Und siehe da: alles lief sofort (nachdem die gängigen Parameter in Apaches httpd.conf und PHPs php.ini wie z.B. session.save_path wieder angepasst waren) einwandfrei.

Daher mein Tipp: wenn keine Session-IDs weitergegeben werden UND die Scripten fehlerfrei sind (z.B. auf einem anderen Webserver laufen), folgendes tun:

  • php.ini überprüfen: weist "session.save_path" auf ein Verzeichnis, das es auch wirklich gibt?
  • Neuinstallation (bei mir statt PHP 5.0.5 jetzt PHP 4.3.10, aber ich glaube, der Fehler war in irgendeiner Konfigurationseinstellung, Apache habe ich auch gleich neu installiert, - eine Neuinstallation ist im Vergleich zur ewigen FEhlersuche die schnellere Lösung!)

Falls es einen Leser mit dem gleichen Problem interessiert: hier noch meine Einstellungen in der php.ini zu session:

session.save_handler = files
session.save_path = C:\temp
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
session.save_path= C:\PHP\sessiondata