Andreas Korthaus: Abgelaufene Session

Beitrag lesen

Hi!

if(!session_is_registered('name'))
{
echo "Bitte einloggen";
}

Damit überprüft man doch, ob es die Session name schon gibt.

Nein, definitiv nicht. Damit prüfst Du ob in der aktuellen Session eine Variable mit dem Namen "name" existiert.

Hat denselben Effekt wie:

if(!isset($_SESSION['name'])) {
  echo "Bitte einloggen";
}

Wenn er jetzt nach 30 Min die Session löscht, so erscheint diese Meldung "Bitte einloggen".

Seine Frage war glaube ich, eben wie man das nach 30 Minuten löscht!

Warum sollte man dies nicht nehmen?

Weil es in diesem Fall keinen Sinn macht, und da die 2., von mir beschriebene Zugriffs-Variante verwendet werden sollte, wie Sven auch beschrieben hat.

Manuel sagt:

Welcher Manuel?

session_is_registered --  Überprüft, ob eine Variable in einer Session registriert ist

ach der "Manual" ;-)

Ja, das ist richtig, und dann vegleiche diesen Satz mal mit Deinem:

"Damit überprüft man doch, ob es die Session name schon gibt."

Beachte: Session != Session-Variable

Wenn Sie $HTTP_SESSION_VARS/$_SESSION verwenden, sollten Sie session_register(), session_is_registered() und session_unregister() nicht verwenden.

Also man kann beides nehmen, aber ich finde das mit session_is_registered leicher zu verstehen

Dazu aus dem Manual:

"Aus Gründen der Verbesserung der Sicherheit und der Lesbarkeit des Codes wird die Verwendung von $_SESSION  (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) empfohlen. Mit $_SESSION werden die Funktionen session_register(), session_unregister() und session_is_registered() nicht benötigt. Auf die Session-Variablen kann wie auf jede normale Variable zugegriffen werden."
Quelle: http://de3.php.net/manual/de/ref.session.php#session.examples

Noch Fragen?

Grüße
Andreas