Hi moritz,
[...] und vergibst eine eindeutige Sitzungs-ID mit session_id
das ist i.a. unnoetig, das gechieht automatisch.
die du in eine Sitzungs-Variable speicherst:
session_start();
$_SESSION['id']=session_id();
Und Du vergibst auch gar keine, sondern speicherst nur die bestehende in eine Variable. Das ist in der Form auch unnoetig.
> Danach mit header("location:./") ne Weiterleitung machen!
Warum? Und wohin?
> Auf jeder nachfolgenden Seite beginnst(!) du wieder mit session\_start(); und machst eine einfach Abfrage:
~~~php
> <?php
> session_start();
> if($_SESSION['id']!=session_id()){
> die('Nicht angemeldet');
> }
Das fuehrt zu einem Warning, falls keine Session wiedehergestellt wurde, weil die Variable $_SESSION['id'] nicht existiert. Wenn sie doch existiert, ist sie zwingend gleich dem Rueckgabewert von session_id(). Wenn es der Kontext erfordert, dass Du abfragst, ob eine Session wiederhergestellt wurde, dann reicht es also, etwa in der Session eine Variable $_SESSION["exists"] zu setzen und diese beim Starten der Session auf Existenz zu pruefen.
Ausserdem ist das Nicht-Wiederherstellen einer Session kein Grund fuer das Skript, einfach Selbstmord zu begehen, gleich nachdem es invaliden HTML-Code zuruekgegeben hat, der lediglich aus einer haesslichen, nackten Fehlermeldung besteht. Oder?
Viele Gruesse,
der Bademeister