Hallo Sam,
Auf Server, auf denen diese Option aktiviert ist, muss ich sie am Anfang gleich per ini_set() deaktivieren, oder? Wie heißt dieser Eintrag nochmal genau und auf was muss man ihn setzen um die Option zu deaktivieren?
Also, die Einstellung lautet use_trans_sid. Allerdings funktioniert das Deaktivieren dieser Einstellung per Script nur ab PHP 5. Wenn Du noch PHP 4 hast, dann musst Du einen "Trick" verwenden:
ini_set ('url_rewriter.tags', '');
Das muss allerdings _vor_ session_start() geschehen - genauso wie ein eventueller Aufruf von ini_set ('session.use_trans_sid', 0);
Dann möchte ich der Session per session_name() den Namen 'sid' zuweisen.
session_name ('sid'); vor session_start ();
Dann weiß ich nicht mehr so richtig weiter. Wie bekomme ich dann die Daten aus der Session 'sid' wieder, sodass sie wieder in $_SESSION verfügbar sind?
Ganz normal per session_start(). Wenn Du use_trans_sid verwendest, musst Du Dich lediglich darum kümmern, dass die Session-ID wieder angehängt wird. PHP definiert die Konstante SID, die entweder leer ist (wenn Cookies unterstützt werden) oder gleich den Inhalt enthält, den man an URLs ranhängen muss.
<a href="index.php<?php if (!empty (SID)) echo '?'.SID; ?>">Startseite</a>
sollte ausreichen, damit automatisch ein Link erzeugt wird, der bspw. wie
<a href="index.php?PHPSESSID=245fff2424">Startseite</a>
aussieht. Oder, falls Du den Namen der Session in sid geändert hast, so:
<a href="index.php?sid=245fff2424">Startseite</a>
Wenn Du ein Formular erzeugst, musst Du ein Hidden-Feld erzeugen:
<?php
if (!empty (SID)) {
echo '<input type="hidden" name="'.session_name().'" value="'.session_id()'">';
}
?>
Viele Grüße,
Christian