mein alter Hoster hat dicht gemacht, und ich bin jetzt gestern umgezogen auf bplaced.
Nun habe ich mein Script übertragen, und bekomme jetzt aber FEHLER bei bplaced angezeigt.
Da hätte ich das hier:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/vmm/www/name/index.php:57) in /users/vmm/www/name/head.php on line 50
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/vmm/www/name/index.php:57) in /users/vmm/www/name/head.php on line 50
Für mich ist nicht veständlich, wieso er aufeinmal mit so einem Fehler kommt?
Auf meinem Altern Webspace hat alles ohne Probleme funktioniert.
Was das jetzt?
Vielleicht könnt ihr mir sagen, wieso mein Script keine Session Starten (session_start()) kann.
Man braucht kein output_buffering, wenn man seine Scripte vernünftig schreibt.
Stichwort EVA-Prinzip.[/quote]
Ich habe keine Ahnung was du meinst.
Ich hab in meinem Script nur session_start() in der Zeile 50 wie im Fehler erwähnt.
Wenn ich den Code-Teil ausbaue, ist die PHP Fehlermeldung weg.
Aber so funktioniert das Script nicht mehr.
Ich weiß nichtmal was „output_buffering“ ist.
Ich bin PHP Anfänger daher
PHP Sessions verwenden üblicherweise Cookies, diese Cookies werden in den HTTP-Header geschrieben (nicht zu verwechseln mit dem HTML Head bereich).
Der HTTP Header enthält Informationen zum Dateiformat (HTML Datei? oder ist es ein Bild?), Dateigröße, Server Informationen und noch einiges mehr.
In dem Moment wenn eine Ausgabe per PHP erfolgt (sogar ein einfaches Leerfeld oder ein Zeilenumbruch außerhalb des PHP Bereiches), wird der HTTP Header an den Browser gesendet, und die Ausgabe gleich hinterher.
Und wenn der HTTP Header hinaus gesendet wurde, gibt es keine Möglichkeit mehr dort irgendwas zu verändern, und somit auch keine Möglichkeit mehr die Sessions per Cookie zu setzen.
Wenn das Outputbuffering Standardmäßig aktiviert ist, wird sämtliche Ausgabe erst in einen Zwischenspeicher gepackt und nicht sofort zum Browser gesendet, was dafür sorgt, dass selbst nach einer Ausgabe der HTTP Header noch nicht rausgesendet wurde und deshalb immernoch veränderbar ist.
[quote=“Balmung”]PHP Sessions verwenden üblicherweise Cookies, diese Cookies werden in den HTTP-Header geschrieben (nicht zu verwechseln mit dem HTML Head bereich).
Der HTTP Header enthält Informationen zum Dateiformat (HTML Datei? oder ist es ein Bild?), Dateigröße, Server Informationen und noch einiges mehr.
In dem Moment wenn eine Ausgabe per PHP erfolgt (sogar ein einfaches Leerfeld oder ein Zeilenumbruch außerhalb des PHP Bereiches), wird der HTTP Header an den Browser gesendet, und die Ausgabe gleich hinterher.
Und wenn der HTTP Header hinaus gesendet wurde, gibt es keine Möglichkeit mehr dort irgendwas zu verändern, und somit auch keine Möglichkeit mehr die Sessions per Cookie zu setzen.
Wenn das Outputbuffering Standardmäßig aktiviert ist, wird sämtliche Ausgabe erst in einen Zwischenspeicher gepackt und nicht sofort zum Browser gesendet, was dafür sorgt, dass selbst nach einer Ausgabe der HTTP Header noch nicht rausgesendet wurde und deshalb immernoch veränderbar ist.
nur um dich mal aufgeklärt zu haben
mfg Balmung[/quote]
Danke für deine Ausführlich Erklärung.
Mal hoffen das wir damit auch anderen vielleicht helfen konnten
PHP Anfängern wie mir.