## Übermittlung der Session-ID

Es gibt zwei Methoden, eine Session-ID zu übermitteln:

- Cookies
- URL-Parameter

Das Session-Modul unterstützt beide Methoden. Cookies sind optimal, aber da sie nicht immer zur Verfügung stehen, bieten wir auch noch eine Alternative an. Die zweite Methode hängt die Session-ID direkt an die URLs.

PHP ist in der Lage, Links transparent umzuwandeln. Ist die Laufzeit-Option `session.use_trans_sid` aktiviert, werden relative URIs automatisch so geändert, dass sie die Session-ID enthalten.

> Hinweis:

> Die php.ini-Anweisung arg_separator.output ermöglicht es, die Trennung von Argumenten anzupassen. Um die volle XHTML-Konformität zu gewährleisten, muss dort &amp; angegeben werden.

Alternativ kann die Konstante `SID` verwendet werden, die definiert ist, nachdem die Session gestartet wurde. Falls der Client kein geeignetes Session-Cookie gesendet hat, hat sie die Form `session_name=session_id`. Andernfalls wird sie zu einer leeren Zeichenkette erweitert. Aus diesem Grund kann sie bedingungslos in URLs eingebettet werden.

Das folgende Beispiel demonstriert, wie eine Variable registriert wird und wie unter Verwendung einer `SID` korrekt auf eine andere Seite verwiesen wird.

Beispiel #1 Zählen der Seitenaufrufe eines einzelnen Benutzers

`<?php
session_start();
if (empty($_SESSION['zaehler'])) {
$_SESSION['zaehler'] = 1;
} else {
$_SESSION['zaehler']++;
}
?>
<p>
Hallo Besucher, Sie haben diese Seite <?php echo $_SESSION['zaehler']; ?> mal
aufgerufen.
</p>
<p>
Hier gehts
<a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">weiter</a>.
</p>`

Die Funktion htmlspecialchars() kann dazu verwendet werden, um bei der Ausgabe der `SID` XSS-ähnliche Angriffe zu verhindern.

Die oben gezeigte Ausgabe der `SID` ist nicht nötig, wenn PHP mit --enable-trans-sid übersetzt wurde.

> Hinweis:

> Bei nichtrelativen URLs wird davon ausgegangen, dass sie auf externe Seiten zeigen und deshalb keine `SID` angehängt, weil es ein Sicherheitsrisiko wäre, die `SID` an einen anderen Server zu übermitteln.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open