Session Variable wird nicht neu geschrieben?!

Was soll ich machen? Ich hab's so gesagt wie es ist. Wäre nichts dran, hätte ichs auch garnicht geschrieben... aber oft ists doch nett, wenn man die Leute zum nachdenken anreizt - was hier ja nicht geklappt hat. Aber ok... falls ich falsch liege, wäre es doch nett mich davon zu überzeugen.

Es würde ausreichen zu begründen, warum dem so nicht sei, statt mit einem "stimmt nicht" die Sache grundlos zu kommentieren. Und wenn du dieverse Postings mit session_start() und header() im Zusammenhang gelesen hättest, wäre dir aufgefallen, dass die meisten den Header-Fehler durch ob_start und ob_end_flush umgehen. Dieser Hinweis steht nicht nur in massenhaft hiesiger Tutorials zu Sessions, sondern auch auf PHP.net mit folgendem Text:

Anmerkung: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird.

zur Verdeutlichung habe ich das wichtige fett hervorgehoben, nämlich genau das, was diesen Fehler resultieren lässt. In anbetracht dessen glaube ich, ist eine weitere Diskussion zu diesem Thema zu vermeiden.

MfG
 
Original geschrieben von methodus
zur Verdeutlichung habe ich das wichtige fett hervorgehoben, nämlich genau das, was diesen Fehler resultieren lässt. In anbetracht dessen glaube ich, ist eine weitere Diskussion zu diesem Thema zu vermeiden.

MfG
nene... da müssen wir jetzt durch, da ich meine, dass es falsch ist, was Ihr hier schreibt. ;)
Anmerkung: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird.
hierbei geht es um irgend etwas, was nach dem Header an den Browser geschickt wird. (zur Verdeutlichung habe ich ein weiteres Wort fett markiert) Das ist hier überhauptnicht der Fall, da nur Header versand werden und selbst nach einem Session-Start, der möglicherweise den Cookie setzt ein Umleiten per Location-Header wunderbar klappt. Dabei braucht man weder Output-buffering noch irgendwas anderes zu benutzen.
Ein ganz simples Script, wie z.B.:
Code:
<?php
session_start();
header("Location: http://www.domain.tld");
?>
führt zu keiner Fehlerausgabe! Und genau das Gegenteil erlese ich in euren Postings. (Dass die Session evtl. nicht erhalten bleibt und man Sie manuel dem Location-Befehl anhängen sollte, lasse ich mal aussen vor)
Und wenn du dieverse Postings mit session_start() und header() im Zusammenhang gelesen hättest, wäre dir aufgefallen, dass die meisten den Header-Fehler durch ob_start und ob_end_flush umgehen. Dieser Hinweis steht nicht nur in massenhaft hiesiger Tutorials zu Sessions, sondern auch auf PHP.net mit folgendem Text
Du kannst mir glauben, dass ich schon einige Postings gelesen habe - wenn auch nicht hier, habe ich andere Quellen (was ja noch viel abgefahrener ist: Ich habe sogar schon einige beantwortet ;)). Und wenn dort jemand etwas falsches schreibt und man Ihn drauf aufmerksam macht, dann werden die meisten Leute stutzig und recherchieren erstmal... hier nicht... hier schmeisst man dann mit Zitaten von php.net rum, die indirekt überhauptnichts mit dem eigentlichen Thema zu tun haben, da wie schon gesagt ein Output-Buffering nur für Daten benötigt wird, die NACH dem Header gesendet werden...

Sorry, aber ich bleibe dabei: Die Aussage, dass ein session_start() vor einer Header-Umleitung zu Fehlern führt ist falsch! Ich kann in dieser Kombi keinen Fehler reproduzieren... falls du es kannst: bitte ein Snippet, dann wäre das auch erledigt und ich habe was gelernt.... bin wirklich gespannt. Und diese blöden Stichelein lassen wir ab jetzt... ich mache sowas nicht gerne... also Frieden :)

Gruss
Jan
 
Zurück