• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Sprichwörter und Redewendungen sind das Thema unseres Monatswettbewerbes. Nähere Informationen dazu gibt es natürlich auch, und zwar auf dieser Seite ---> Klick

PHP Fehlercode

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
Hallo Community,

ich komme direkt mal zu meinem Problem. Ich habe ein komplettes Login/Logout Script geschrieben mit Datenbank Anbindung welches an sich wunderbar funktioniert. Nach dem erfolgreichen Login soll meine Website den User mit Vornamen begrüßen. Das Problem jedoch ist das sich das Script dazu, nicht in das Script der Website einsetzen lässt.

Es kommt immer folgende Meldung im Browser:


  • Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /Library/WebServer/Documents/loogin.php:89) in /Library/WebServer/Documents/loogin.php on line 90
    Hallo Peter
    Logout

Wenn ich das richtig verstehe wird bereits vom header einer Session gestartet und deswegen diese Meldung oder liege ich da falsch ?

Egal an welcher Stelle ich das kleine Script anordne, es kommt immer zu selben Meldung. Eventuell weiß ja einer von euch was man machen kann um das ganze vernünftig zum laufen zu bringen :)

Hier noch das Script zur Begrüßung des Users:

<?php
session_start();
if(!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href="login.php">einloggen</a>');
}

//Abfrage der Nutzer ID vom Login
$userid = $_SESSION['userid'];

echo "Hallo ".$userid;
echo "<br/>";
die('<a href="logout.php">Logout</a>');
?>

Ich bedanke mich schon mal im Voraus für jegliche Hilfe :D
 

timmy38233

Rhode Island Greening
Registriert
20.07.08
Beiträge
474
Was steht denn in der "loogin.php" in Zeile 90?
Poste doch mal bitte die umliegenden Zeilen. Programmcode gehört übrigens immer in Code-Tags (siehe unten) ;)
Screen Shot 2016-08-08 at 18.37.14.png
 

seaker

Empire
Registriert
19.04.10
Beiträge
88
Ist die Loogin.php die einzige Datei die aufgerufen wird, also wird direkt auf diese Seite verlinkt oder ist diese bspw. in eine index.php eingebettet?

Wenn eingebettet gehört der Session-start in die erste Zeile der Index-Datei.
 

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
Entschuldigt das ich jetzt erst schreibe, hatte viel um die Ohren ;)

Was steht denn in der "loogin.php" in Zeile 90?
Poste doch mal bitte die umliegenden Zeilen. Programmcode gehört übrigens immer in Code-Tags (siehe unten) ;)
Anhang anzeigen 136805

@timmy38233

Zeile 89: <?php
Zeile 90: session_start();
...

In Zeile 89 beginnt der Code den ich oben schon gepostet habe. Ich hoffe du verstehst meine Auflistung. Ich hoffe es ist ok das ich es nicht in einen Code-Tag geschrieben habe. Aber vielen Dank für den Hinweis, ich werde es in Zukunft nutzen :) Um die Zeilen 89-101 befindet sich der Programmcode zu meiner Website :)
 

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
Ist die Loogin.php die einzige Datei die aufgerufen wird, also wird direkt auf diese Seite verlinkt oder ist diese bspw. in eine index.php eingebettet?

Wenn eingebettet gehört der Session-start in die erste Zeile der Index-Datei.

@seaker

Die "loogin.php" ist die einzige Datei die aufgerufen wird. In ihr enthalten sind zum einen das Script zur Website, sowie das Script das ich oben gepostet habe :)
 

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
@seaker nach dem erfolgreichen Login wird man über den Link "Hier gehts zur Startseite" auf die loogin.php Datei geführt :)
 

frostdiver

Zwiebelapfel
Registriert
19.06.12
Beiträge
1.281
Deine Zeilen 89 und 90 sollten ganz an den Anfang der Datei.
 

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
@frostdiver habe das ganze jetzt mal ausprobiert jedoch ohne Erfolg. Es kommt immer und immer wieder zu dem selben Fehler :/ Noch ne andere Idee ? Es liegt nämlich offensichtlich an den ersten beiden Zeilen das dass ganze nicht so angezeigt wird wie ich mir das vorstelle :/
 

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
@frostdiver ich habe gerade eben noch einmal weiter probiert und es hat tatsächlich geklappt und somit hattest du also recht. Es kommt schon mal zu keiner Fehlermeldung mehr :D Doch ein kleines Problem hab ich jetzt doch noch und zwar wird alles was nach dem Script

Code:
<?php
if(!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href="login.php">einloggen</a>');
}

//Abfrage der Nutzer ID vom Login
$userid = $_SESSION['userid'];

echo "Hallo ".$userid;
echo "<br/>";
die('<a href="logout.php">Logout</a>');
?>

kommt nicht angezeigt und ich weiß offen und ehrlich gesagt nicht warum :/ Ne Idee ? :)
 

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
@frostdriver Okay ergibt auf jeden Fall Sinn und habe das gerade auch nochmal getestet indem ich ganz einfach mal die Zeile gestrichen habe. Jedoch wird dann leider trotzdem nicht der Rest des Scripts angezeigt :/ Alles über dem Script wird angezeigt, dass was danach kommt nicht mehr.

Nur nochmal zur Veranschaulichung
Code:
<?php
if(!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href="login.php">einloggen</a>');
}

//Abfrage der Nutzer ID vom Login
$userid = $_SESSION['userid'];

echo "Hallo ".$userid;
echo "<br/>";
?>

So habe ich das ganze kurz getestet um zu sehen ob dann der Rest auch angezeigt wird :/ Mach ich etwas falsch ?
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Nur nochmal zur Veranschaulichung
Code:
<?php
if(!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href="login.php">einloggen</a>');
}

//Abfrage der Nutzer ID vom Login
$userid = $_SESSION['userid'];

echo "Hallo ".$userid;
echo "<br/>";
?>
Hier fehlt das session_start();
 

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
@MacApple schon klar :) hab das ja auch an den Anfang des Scripts gesetzt und den Teil der für den erfolgreichen Login zuständig ist, separat ins Script geschrieben. So kommt es schon mal zu keiner Fehlermeldung mehr :) Das Problem was ich jetzt nur habe ist das alles was nach dem Script kommt das ich oben gepostet habe, nicht angezeigt wird :/ noch andere Ideen ?
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Ich kann nur das beurteilen, was du hier postest. Ich habe keine Ahnung, was von dem Ganzen in welcher Datei steht.
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Statt nur Fragmente zu posten wäre es sicher besser, wenn du die gesamte Seite mal posten würdest. Sonst kann man sich schlecht einen Überblick verschaffen.