Wiederspruch: Session und Objekte
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
annahme
ausgabe
beginn
belieben
code
erfolg
fehlermeldung
header
http
internet
klasse
korrekte ausgabe
manual
objekt
rufen
session
start
test
tun
url
-
Ich hab mehrmals im Internet gelesen das wenn man Objekte in Session speichert, muss man die Klassen vor dem Start der Session includen, ansonsten sind sie nutzlos und es erscheint eine Fehlermeldung. Aber wiederrum darf doch NICHTS vor dem Start einer Session sein. Das lässt mich PHP auch spüren und ich bekomme die Fehleremldung, also was tun?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
volnerius schrieb:
Ich hab mehrmals im Internet gelesen das wenn man Objekte in Session speichert, muss man die Klassen vor dem Start der Session includen, ansonsten sind sie nutzlos und es erscheint eine Fehlermeldung. Aber wiederrum darf doch NICHTS vor dem Start einer Session sein. Das lässt mich PHP auch spüren und ich bekomme die Fehleremldung, also was tun?
Ja es ist absolut richtig dass Klassen vor dem session_start() eingebunden werden müssen, um Objekte in einer Session-Variable zu speichern.
Allerdings stimmt deine Annahme dass "NICHTS" vor session_start() sein darf nicht! Es darf lediglich keine Ausgabe erfolgen. Man kann aber nach Belieben jeden anderen Code vor session_start() schreiben.
Bei php.net steht sogar wörtlich:
Um eine benannte Session zu verwenden, rufen Sie session_name() auf, bevor Sie session_start() aufrufen.
oder
Verwendet ein Benutzer ob_gzhandler oder ähnliches mit ob_start(), dann ist die Reihenfolge der Funktionen wichtig für eine korrekte Ausgabe. Zum Beispiel muss ob_gzhandler vor Beginn der Session registriert werden.
Beitrag zuletzt geändert: 25.6.2011 8:07:50 von alfr3d -
Es darf lediglich keine Ausgabe erfolgen
Selbst das ist möglich und manchmal unumgänglich. Wir hatten ein ähnliches Thema bereits. -
<?php ob_start(); echo 'Test: '; session_start(); $_SESSION['test'] = 'bestanden'; echo (isset($_SESSION['test']) && !empty($_SESSION['test']) ? $_SESSION['test'] : 'nicht bestanden'); ob_end_flush(); ?>
EDIT:
http://fabo.lima-city.de/blog/25-header-nach-einer-ausgabe-senden
Beitrag zuletzt geändert: 25.6.2011 8:52:28 von fabo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage