1. ich weitere Seiten (nachgelagerte Seiten) schütze, respektive nach erfolgtem Login diese verlinke?,
jede Seite die geschützt werden soll muss so beginnen:
<?php
session_start();
if(!$_SESSION['user_id']) die('zugriff verweigert');
?>
2. muss die Session jedesmal erneut aus der MySQL-DB abgefragt werden? (Wenn "Ja" - preformance-lastig?),
Die Session-Vars werden auf der Festplatte des Webserver (in den meisten Fällen) abgelegt. Kann man performance-technisch vernachlässigen, solange man keine dicken Dateien in die Vars packt.
3. ist die Session "Global" vergeben?
Ja, sie gilt für jedes PHP-Document welches deinem Serverpfad folgt
also
http://deineseite.de/erstesession.php - anlegen von $_SESSION['startwert']
http://deineseite.de/ein/pfad/zweitesessionseite.php $_SESSION['startwert'] ist hier bekannt
4. ich meinen Bereich so schütze, dass nachgelagerte (geschützte Seiten) nicht über die Adresszeile aufgerufen werden können?,
Siehe Punkt 1.)
5. kann man die Session auch auf ein Timeout begrenzen?
Auch das geht, nur etwas umständlich:
1. Dokument, anlegen der Session
<?php
session_start();
$_SESSION[startzeit] = time();
$_SESSION[maxtime] = 360; // Zeit in Sekunden die die Session gültig sein soll
?>
2. Dokument, abfragen der Werte
<?php
session_start();
if($_SESSION[startzeit] < time() - $_SESSION[maxtime]) session_destroy();
?>
Viel Spass beim Basteln
Daniel