Prüfen, ob eine Session-Variabel bereits vorhanden ist

Tuts4you

Erfahrenes Mitglied
hallo leute!
hab wieder mal ein kleines problem
ich hab jetzt endlich sessions auf meiner website...die auch auf meiner index.php seite starte
PHP:
session_start();
$_SESSION['ID'] = uniqid();
und auf den folgen seiten, lies ich sie wieder aus
PHP:
session_start();
und hänge sie an meine links an
PHP:
waswissich.php?ID=<? echo $_SESSION['ID']; ?>
jedoch, was passiert wenn ein user nicht erst auf die index.php kommt (wo diese gestartet wird) dann kommt es erst gar nicht dazu...aus diesem grund will ich testen, ob eine Session Variabel bereits vorhanden ist - wenn ja dabei belassen - wenn nein, eine neue erzeugen:

1. Versuch:
PHP:
if (isset($_SESSION['ID']) {
session_start();
$_SESSION['ID'] = uniqid(); }
else {
session_start(); }
funktioniert nicht :-(

2. Versuch:
PHP:
if(empty($_SESSION['ID'] ) {
session_start();
$_SESSION['ID'] = uniqid(); }
else {
session_start(); }
funktioniert, ABER er erzeugt mir immer wieder eine neue :-(

3. Versuch:
PHP:
if($_SESSION['ID'] == "") {
session_start();
$_SESSION['ID'] = uniqid(); }
else {
session_start(); }
funktionier auch, ABER es passiert das selbe wie bei Versuch 2!

hoffe ihr könnt mir weiterhelfen!
Danke!
Michael
 
Unter http://www.php.net findest du eine ausführliche Beschreibung, wie das mit den Sessions so funktioniert.

Als Tipp:
Nutzt du Session, musst du auf jeder Seite die session starten ;)
Und - wenn du die Session umbenennst, muss dies vor dem Sessionstart erfolgen ;)
 
Session-Variablen sind erst vorhanden, nachdem die Session gestartet ist... also sollte es so gehen:
Code:
session_start();
if (!isset($_SESSION['ID']) 
{
 $_SESSION['ID'] = uniqid(); 
}
 
Zurück