session_start() in include-datei funktioniert nicht
JulianBaumueller
- php
Hallo,
Ich habe folgendes Problem:
Ich will ein Art Register-Script selbst bauen.
Dazu ist mir folgendes in den Sinn gekommen:
Ich werde alle Daten des Benutzers so speichern:
<form method="post" action="">
<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="text" name="mail">
</form>
und weiter...
<?php
session_start();
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$mail = $_POST['mail'];
// Vorname
if(!isset($_SESSION[vorname]))
{
$_SESSION['vorname'] = $firstname;
}
// Nachname
if(!isset($_SESSION['nachname']))
{
$_SESSION['nachname'] = $lastname;
}
// Mail
if(!isset($_SESSION['email']))
{
$_SESSION['email'] = $mail;
}
?>
Aber, eines funktioniert nicht:
Ich habe die Dateien, in die ich den code geschreiben habe, in meine Index.php included:
<?php
$url = $_GET[page];
switch($url)
{
case register:
include("register.php");
break;
}
?>
Wenn ich jetzt das Script benutzen und aufrufen möchte, erscheint folgende Fehlermeldung:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started... blablabla
Kann mir jemand helfen und sagen wie ich dass beheben kann?
Ich glaube, es funktioniert deswegen nicht, weil ich die seite (register.php) included habe.
Kann mir irgendjemand helfen?
Wenn ich mich komisch und unverständlich ausgedrückt habe, sagt mirs einfach.
Gruß Julian.
Hi,
Wenn ich jetzt das Script benutzen und aufrufen möchte, erscheint folgende Fehlermeldung:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started... blablabla
Kann mir jemand helfen und sagen wie ich dass beheben kann?
Ja, Google beispielsweise - dieser Fehler ist bestens dokumentiert.
Und das Handbuch sagt auch, was bzgl. session_start zu beachten ist.
Ich glaube, es funktioniert deswegen nicht, weil ich die seite (register.php) included habe.
Nein, weil du vorher schon Ausgaben gemacht hast.
MfG ChrisB
Hallo,
ich möcht euch noch mal für die schnellen Antworten danken.
Ich habe folgenden Fehler gemacht und zwar habe ich das session_start(); UNTER das [<?php] geschreiben.
Woanders hab ich dann gelesen, dass es eigentlich so heißen müsste:
<?session_start();?>
so hab ich das jetzt auch im quelltext stehen.
Funktioniert.
Gruß
Julian.
Moin!
Hallo,
ich möcht euch noch mal für die schnellen Antworten danken.
Ich habe folgenden Fehler gemacht und zwar habe ich das session_start(); UNTER das [<?php] geschreiben.
Nein. Du hast VOR diesem "<?php" was stehen, was als Ausgabe 1:1 an den Browser geschickt wird.
Woanders hab ich dann gelesen, dass es eigentlich so heißen müsste:
<?session_start();?>
Nein, MUSS nicht so heißen. Mit der Kurzform der PHP-Tags handelst du dir ggf. Ärger ein.
<?php
session_start();
?>
wäre auch erlaubt. Nur eben mit dem "<?php" als allerersten Zeichen in der Datei!
- Sven Rautenberg
Hi!
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started... blablabla
Das ist ein bekanntes Ding: Deine Scripte verursachen eine Ausgabe _bevor_ session_start() aufgerufen wird - die HTTP-Header sind bereits "gesendet", wie es auch in der Meldung steht.
off:PP