dedlfix: Passwortgeschützter Bereich

Beitrag lesen

echo $begrüßung;

Du solltest dein Problem beschreiben. Anhand von Code kann man sehen, was du geschrieben hast, aber nicht zwangsläufig was du damit erreichen wolltest.

Auf einer Seite sind bereits alle Links zu sehen, auch wenn man nicht eingeloggt ist. Klickt man jedoch im unangemeldeten Modus auf einen der Links erscheint eine Fehlermeldung, dass man sich zuerst einloggen muss.
Bin ich jedoch erfolgreich eingeloggt, soll eine Session gestartet werden. Und in der betroffenen .php-Datei soll auf ungleich null der Session abgefragt werden. Ist die Session ungleich null, dann sollen die gewünschten Daten angezeigt werden.

Ich hoffe ich konnte das Problem einigermaßen beschreiben.

Mit PHP kann man HTML-Quelltext erzeugen. Was ein Konsument dieses HTML-Codes daraus macht, z.B. Links, Tabellen, etc., ist für PHP nicht von Belang.
Aus Sicht von PHP möchtest du eine Session eröffnen.

session_start();

Ob eine neue eröffnet wird oder ob eine alte Session weitergeführt wird muss dich erstmal nicht kümmern. session_start() steht vor allen Ausgaben. Weder HTML-Code noch Leerzeilen/-zeichen außerhalb von PHP-Blöcken dürfen vorhanden sein. (Das hast du sicher schon beachtet.)

Nun musst du nur in Abhängigkeit eines erfolgreichen Logins einen Eintrag im $_SESSION-Array vornehmen. Beispielsweise so:

$_SESSION['angemeldet'] = true;

Und an anderer Stelle musst du nur abfragen, ob dieser Wert vorhanden ist[1] und ob er true ergibt.

if (isset($_SESSION['angemeldet']) and $_SESSION['loggedin'])
    // user ist angemeldet
  else
    // user ist nicht angemeldet

echo "$verabschiedung $name";

[1] Wenn er nicht vorhanden ist ergibt das sonst eine Notice, wenn das error_reporting auf E_ALL steht. Das (error_reporting) ist immer eine gute Idee ist, wenn man PHP-Scripte entwickelt.