PHP 5.1.1 und Sessions

bmxvoodoo

Mitglied
Hallo,

ich habe mir soeben die neue Version von XAMPP runtergeladen. Vorher hatte ich PHP 5.0.x laufen und jetzt 5.1.1.
Komischerweise funktioniert eine Anwendung mit Sessions nicht mehr, weil ich in jeder Datei die Sessionvariablen benötigt "session_start();" hinschreibe.

Unter der alten PHP-Version lief das, jetzt nicht mehr.

War das früher auch schon falsch und gibt PHP jetzt nur eine Fehlermeldung aus oder hat sich da was grundlegendes geändert?

Danke für Infos

mfg bmxvoodoo
 
Hatte schon diese beiden Fehlermeldungen:

- Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\...)

- session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Programme\apachefriends\xampp\htdocs\newssystem\suchen_m.php:5) in ...
 
Prüfe mal ob du nicht vor Session_start(); ein echo oder print hast.
Wenn davor noch eine andere Fehlermeldung kommt, dann wird es wohl daran liegen.
Wen das beides nicht ist, dann Prüfen mal ob eines deiner Script Dateien vor <? oder nach dem ?> Leerzeichen oder Umbrüche hat. sofern diese vor dem Start der Session kommen.
Das sind meist dieses Fehler die einem auf eine Sehr Lange suchen schicken können :rolleyes:

Die Fehlermeldung besagt das der Header nicht gesendet werden kann, weil schon eine Ausgabe stattgefunden hat.
Wenn ein Header versendet werden soll, dann muss dieser vor allen anderen ausgaben, ausgegeben werden ;)

Grüße
 
Daran kann es eigentlich nicht liegen, weil es mit der alten Version einwandfrei funktioniert hat.

Aber den Fehler hab ich trotzdem in einer Datei gefunden. Danke für den Tipp.

Also das Problem besteht weiterhin. Kann das sein, dass PHP jetzt intoleranter geworden ist? Die Fehlermeldung kommt immer, wenn ich ein Formular abschicke und so eine andere Seite bearbeitet wird in der auch "session_start()" steht.
 
Zuletzt bearbeitet:
Wahrscheinlich sind die Sitzungsverarbeitung so eingestellt, dass mit Cookies gearbeitet wird. Das setzen jedoch das Setzen des HTTP-Header-Feldes „Set-Cookie“ voraus, ohne den das Benutzerprogramm kein Cookie lokal anlegen kann. Die HTTP-Header-Felder werden jedoch im Nachrichtenkopf der HTTP-Antwort gesendet, und dieser kann nicht mehr geändert werden, sobald ein Teil des Nachrichtenkörpers – quasi der Inhalt der Nachricht selbst – gesendet wurde. Mehr sagt die Fehlermeldung auch nicht aus.
Um es auf dein Problem zu beziehen, muss der Aufruf zum Start der Sitzung am Anfang – oder zumindest vor der ersten Ausgabe – erfolgen, damit noch die entsprechenden Header-Felder gesetzt werden könne. Übrigens ist es pro Aufruf eines Skriptes nur ein Start der Sitzung notwendig und nicht – wie du es beschrieben hast – in jeder Skript-Datei.
 
bmxvoodoo hat gesagt.:
Daran kann es eigentlich nicht liegen, weil es mit der alten Version einwandfrei funktioniert hat.

Aber den Fehler hab ich trotzdem in einer Datei gefunden. Danke für den Tipp.

Also das Problem besteht weiterhin. Kann das sein, dass PHP jetzt intoleranter geworden ist? Die Fehlermeldung kommt immer, wenn ich ein Formular abschicke und so eine andere Seite bearbeitet wird in der auch "session_start()" steht.
Doch, kann es.
Es soll ein Session-Cookie gesetzt werden und das geht nicht. Es wurde also entweder bei der alten Version kein Session-Cookie gesetzt oder aber der Output Buffer war aktiv.
Du wirst also vor Deinem session_start() eine Ausgabe haben, und zwar hier:
C:\Programme\apachefriends\xampp\htdocs\newssystem\suchen_m.php:5
 
Gumbo hat gesagt.:
Übrigens ist es pro Aufruf eines Skriptes nur ein Start der Sitzung notwendig und nicht – wie du es beschrieben hast – in jeder Skript-Datei.

Meinst du das "session_start()" zum Beispiel nur in der index.php stehen muss?
Hab das so gelesen, dass das immer stehen muss, wenn ich session-variablen im script verwende.

Habe auf jeden Fall jetzt in allen Dateien bis auf index.php session_start() gelöscht. Trotzdem kommt der Fehler mit "Cannot modify Header information - headers already sent..."
Ich raff das nicht...
 
Hab das so gelesen, dass das immer stehen muss, wenn ich session-variablen im script verwende.
Einmal im gesamten Skript und nicht in einmal in jeder Skript-Datei.
Der Fehler weist nun immer noch darauf hin, dass der HTTP-Header nicht mehr um das „Set-Cookie“-Header-Feld ergänzt werden kann, da er bereits gesandt wurde. An welcher Stelle erfolgt denn der Aufruf zum Start der Sitzung? Dieser muss nämlich vor jeglicher Ausgabe des „eigentlichen Inhalts“ erfolgen – es sei denn, du steuerst die Ausgabe mit den Funktionen der Ausgabesteuerung manuell.
 
Zurück