# Überprüfen ob Session existiert



## schoko (9. August 2006)

Guten Tag,

mal eine kurze Frage zu Sessions. Und zwar würde ich gerne überprüfen ob eine Session exisitiert und falls noch keine vorhanden ist, eine starten.

Probiert habe ich es mit folgendem Code:

```
if($_SESSION) {
    echo "Es exisitiert bereits eine Session.";
} else {
   session_start();
   echo "Es wurde eine neue Session gestartet.";
}
```

Leider funktioniert der Code nicht. Es wird jedesmal "Es wurde eine Session gestartet" ausgegeben, also die Abfrage ist jedesmal FALSE obwohl defiinitiv eine Session vorhanden sein muss.

Hoffe auf eure Hilfe.

Gruß
schoko


----------



## darksmilie (9. August 2006)

Vielleicht kann dir ja der Link weiterhelfen:

Sessions


----------



## Gumbo (9. August 2006)

In dem Fall ist der Bedingungsausdruck wohl etwas zu vage. Denn dieser Ausdruck entspricht „$_SESSION == true“, welcher bei einem leeren Array immer ein „false“ ergibt (siehe Typenvergleichstabelle).


----------



## schoko (9. August 2006)

Ok ich habe das Problem nun glaub ich etwas anders glöst. Ich habe einfach gleich nach dem erstellen der Session ein TRUE in ihr gespeichert un dieses frag ich dann bei der Prüfung ab. Sollte so klappen...


----------



## schoko (10. August 2006)

Hm es klappt leider nicht so wie ich mir das vorgestellt habe. Der Inhalt der Session ist komischerweise nach einem Reload verschwunden und dadruch kann ich nicht prüfen ob eine Session geöffnet ist.

Mein Script öffnet in der ersten Zeile eine Session mit:

```
session_start();
```

und dann folgt sofort in der zweiten Zeile:

```
$_SESSION['exist'] = TRUE;
```

jetzt habe ich mir gedacht, ich prüfe einfach ob der Array $_SESSION['exist'] existiert bzw. nicht leer ist und habe damit meine eigentliche Frage beantwortet...ob überhaupt eine Session gestartet ist. 
Nun hab ich das Problem, dass der Inhalt $_SESSION['exist'] nach einem Reload leer ist und somit die Abfrage immer FALSE ergibt.

Gibt es noch eine Möglichkeit zu prüfen ob eine Session existiert
Hat jemand einen konkreten Tip zu Lösung meines Problems? Wenn ja bin ich euch sehr dankbar!!

Grüße
schoko


----------



## Gumbo (10. August 2006)

Wozu willst du eigentlich wissen, ob eine Sitzung bereits existiert? Starte sie doch einfach mit dem Aufruf der session_start()-Funktion und gut is’. Existiert bereits Sitzungdaten zu der angegebener Sitzungs-ID, werden diese automatisch wieder aufgenommen.


----------



## schoko (10. August 2006)

Ich muss aber wissen ob bereits eine Session existiert....anonsten wird eine Prüfung in der Datenbank durchgeführt und bei erfolgreicher Prüfung die Session gestartet. Falls die Prüfung negativ ausfällt, wird keine Session gestartet und somit dem User der Zugriff verweigert. Falls jedoch bereits eine Session exisitiert, wird die Prüfung übersprungen und man ist direkt "eingeloggt". 

Ist leider eine Vorgabe die ich so umsetzen muss...


----------



## Gumbo (10. August 2006)

Die Sitzung muss in jedem Fall gestartet werden, da sonst die Sitzungsdaten nicht verfügbar sind. Daher probier mal Folgendes:
	
	
	



```
session_start();
if( count($_SESSION) ) {
	// Sitzung existiert bereits
} else {
	// Sitzung existiert noch nicht
	$_SESSION['exists'] = true;
}
```


----------



## schoko (10. August 2006)

Ok super, mit hats einfach nur geholfen die Session zu starten bevor ich abfrage ob $_SESSION['exist'] = TRUE...

Scheint nun alles zu klappen...danke!

schoko


----------

