Hallo,
nachdem ich mich nun eine Woche ziemlich intensiv mit den Sessions und einer Doku dazu beschäftigt habe, möchte ich auch ein wenig Senf ablassen:
session_start() muss nur einmal am Anfang ausgeführt werden
session_start() muss auf _jeder_ Seite erneut im (HTTP-)Header-Bereich des Skriptes (nicht im <head>-Bereich!) noch vor jeder Ausgabe (alles das, was später im Browser-Quelltext landet) aufgerufen werden. Man sollte vorher $oldname=session_name("neuername"); aufrufen, wenn man den Standardnamen (PHPSESSID) nicht wünscht. Wenn eine _neue_ Session gestartet wurde, ist SID (Konstante) gesetzt und gefüllt.
if (defined("SID") and strlen(SID) > 32)
{
echo "Session ".SID." wurde neu gestartet";
}
if (!defined("SID")
{
echo "Für dieses Skript gibt es (noch) keine Session-Verbindung";
}
Und wenn SID definiert ist und trotzdem leer (SID==""), dann bestand schon eine Session-Verbindung, die durch session_start() wieder aufgenommen wurde.
Ich hoffe, nun kommst Du einen Schritt weiter.
um zu verhindern dass eine neue gestartet wird obwohl sie schon gestartet wurde
musst du prüfen ob eine session_id() schon vorhanden ist
Die Funktion session_id() liefert erst _nach_ Aufruf von session_start() ein gültiges Ergebnis.
Liebe Grüße aus <http//www.braunschweig.de>
Tom