Session Fehlermeldung

quezo

Mitglied
Hallo
ich habe folgendes Problem.
Auf meiner Seite kommt immer die folgende Warnung:

Warning: open(/data/session/sess_a270d85d270ffe5940e375e6d7412ec8, O_RDWR) failed: No such file or directory (2) in index.php on line 9

In Zeile 9 steht nur der Funktionsaufruf session_start();

Aber was ist damit gemeint? Vor allem scheint es doch ein Verzeichnis des Servers zu sein. Der Anbieter ist Lycos Tripod. Liegt es daran?
 
den befehl session_start() musst du VOR alle anderen befehle in die 1.zeile schreiben.
Dass dein provider php unterstüzt ist natürlich auch eine Voraussetzung ;)
 
hi,
also der Provider unterstützt php.
session_start() hab ich auch vor allen anderen Befehlen.
Es steht nur ein Kommentar davor.
 
hmm,

der Kommentar sollte nicht stören da er keine Ausgabe erzeugt, kannst es mal ohne versuchen aber ich denke es liegt daran das in der php.ini scheinbar ein falscher Pfad zu den Sessionvariablen drinsteht. Die Variablen werden auf der Platte (des Prividers) gespeuchert unter dem Namen der SessionID, naja und scheinbar kann der Befehl session_start() diese nichtmehr finden, warum auch immer, meist ist es ein Problem mit der Pfadeinstellung, sollte aber bei einem grossen Provider nicht vorkommen. Komisch aber so interpretiere ich die Fehlermeldung.
 
Damn, ich hatte vorher einen etwas längeren Text zu diesem Beitrag verfasst, aber der kam nicht beim Server an.

Nagut, also was ihr hier über Sessions sagt ist falsch. Man kann vor dem session_start(); auch Anweisungen und sogar Bildschirmausgaben durchführen lassen. Es ist prinzipiell egal, wo das session_start() steht. Richtig ist natürlich, dass alle anderen Session Funktionen erst nach session_start() stehen dürfen.

Das wo man keine Bildschirmausgaben vorher haben darf sind header() Geschichten. Nicht verwechseln.

Ich teile die Ansicht von JoelH, dass es am session.save_path liegt, der beim Provider einfach falsch gesetzt wurde. Man kann von Tripod aber auch nicht so viel erwarten gell? :)

Es gibt Möglichkeiten, wie man alternative Speicherungen einstellen kann, aber das ist sehr umständlich und nicht leicht zu erklären.

Man kann das PHP eigene Session Handling abstellen und durch eigene Funktionen ersetzen. Das betrifft vor allem den Ort der Speicherung von Session Daten (zB in Datenbanken).

Wie gesagt, das ist etwas kompliziert und ich selber seh da noch nicht ganz durch, aber es hat was mit der Funktion session_set_save_handler(); zu tun, in der man bestimmte Funktionen definieren muss, nachdem man das PHP Session Management durch session_module_name("user"); abgeschaltet hat.

Wenns wirklich wichtig ist, dann kann ich mich nach meinem Urlaub (bis nächsten Freitag) drum kümmern.

Ciao, F.o.G.
 
Cool, danke für die Antworten

Hm, wenn das nun am Session_save_path liegt kann ich ja nix dran ändern, das müsste Tripod schon tun.

Naja, ich werde aber wahrscheinlich sowieso den Provider wechseln, dann hat sich das hoffentlich erledigt.
 
@F.O.G.: was du sagst ist auch nicht ganz richtig ;)
recht hast du wenn man sessions _ohne_ cookies benutzt, dann isses wirklich total egal wo das session_start steht, ob vor oder nach irgendwelchen ausgaben.
ansonsten bleibt das problem, genau wie bei headern...
 
Hmm,
das ganze hab ich mir so autodidaktisch durch Bücher angelernt. Da stand so was nie drin. Als ich vorhin die Antwort las, hab ich das schnell ausprobiert, weil ich das nicht so recht glaubte.

Es funktionierte und es erschien mir logisch, dass es eigentlich egal ist wo der session_start Aufruf steht.

Cookies müssen doch aber nicht vor den Bildschirmausgaben definiert werden oder doch? Jedenfalls funktionierte das ganze mit einem test echo auf meiner Windoof Maschine alles wunderbar....

Wo genau liegen denn nun die Limitierungen? Was darf man vorher alles machen, was nicht?

Ciao, F.o.G.
 
alle header() und setCookie Aufrufe müssen vor jeglichem Output stehen

Zudem müssen die Funktionen mit session, also session_register vor dem Output gesetzt werden
 
Zurück