Problem mit session_start();
Torsten
- php
Hallo,
wieder mal ein Problem welches nur auf dem Server meines Providers auftaucht.
<?php
if(isset($_POST['gesendet']))
{
session_start();
$_SESSION["authenticated"] = 1;
header('Location: intern.php');
}
?>
<form ... >...</form>
Fehlermeldung im Browser:
Warning: session_start(): Cannot send session cache limiter - headers already sent
Auf meinem lokalen Webserver taucht dieser Meldung nicht auf, error_reporting ist auf E_ALL gestellt.
Weiß jemand woran es liegen könnte?
Gruß
Torsten
Hallo, dein Server möchte dir vermutlich bzw. eventuell sagen, dass du bereits HTML-Elemente zum Server gesendet, bevor du die Session gestartet hast ("headers already sent"). Das session_start scheint bei dir mitten im Body-Bereich zu stehen, da im Anschluss daran das form-tag steht? Soweit ich weiß, müssen die Sessionfunktionen vor das eigentliche HTML-Dokument.
Viele Grüsse Carrie
Hallo, dein Server möchte dir vermutlich bzw. eventuell sagen, dass du bereits HTML-Elemente zum Server gesendet, bevor du die Session gestartet hast ("headers already sent"). Das session_start scheint bei dir mitten im Body-Bereich zu stehen, da im Anschluss daran das form-tag steht?
ja mein session_start ist im body.
Ich wüsste auch nicht wie ich das anders machen sollte. Die session_start befindet sich in der login.php und die login.php wird mittels index.php?page=login.php inkludiert.
Soweit ich weiß, müssen die Sessionfunktionen vor das eigentliche HTML-Dokument.
Wenn dem so ist, wie soll ich obige Situation bewältigen?
Auf Sessions wollte ich eigentlich nicht verzichten, aber wenn die so schlecht zu handhaben sind...
Gruß
Torsten
Hi Torsten!
Wenn dem so ist, wie soll ich obige Situation bewältigen?
Was spricht denn dagegen, session_start() als Erstes aufzurufen?
Ich weiß nicht, ob es da Nachteile gibt, aber das dürfte doch eigentlich nichts ändern, oder?
MfG Hopsel
Hi,
wenn du keine Lust hast und ein bisschen an den Symptomen herumdoktorn willst: Schreib ein ob_start(); als allererste Zeile in deine index.php
E7
Hi,
wenn du keine Lust hast und ein bisschen an den Symptomen herumdoktorn willst: Schreib ein ob_start(); als allererste Zeile in deine index.php
Versteh ich nicht. Was soll denn die Funktion ob_start() machen?
Gruß
Torsten
Hi,
lesen hilft: http://de.php.net/manual/de/function.ob-start.php. Die Ausgabe wird gepuffert, damit hat der Server noch nichts an den Client verschickt, obwohl du per echo oder sonst wie schon Inhalt verschickt hat. Erst mittels ob_end_flush(); oder dem Ende des Skriptes erfolgt der gesamte Versand auf einmal. Header können damit quasi nachträglich angefügt werden, das Starten einer Session demnach auch.
MfG
Rouven
Hallo,
lesen hilft: http://de.php.net/manual/de/function.ob-start.php. Die Ausgabe wird gepuffert, damit hat der Server noch nichts an den Client verschickt, obwohl du per echo oder sonst wie schon Inhalt verschickt hat. Erst mittels ob_end_flush(); oder dem Ende des Skriptes erfolgt der gesamte Versand auf einmal. Header können damit quasi nachträglich angefügt werden, das Starten einer Session demnach auch.
achso, wusste nicht das ob_start eine Funktion von PHP ist, dachte er wollte mir vorschlagen eine eigen definierte Funktion zu Schreiben, das hat mich verwirrt.
Danke hat mir sehr weiter geholfen, war schon kurz davor mein Projekt in die Tonne zu treten und von neuem beginnen...
Gruß
Torsten