518 Stimmen

Prüfen, ob die PHP-Sitzung bereits begonnen hat

Ich habe eine PHP-Datei, die manchmal von einer Seite aufgerufen wird, die eine Sitzung gestartet hat, und manchmal von einer Seite, auf der keine Sitzung gestartet ist. Wenn ich also session_start() bei diesem Skript erhalte ich manchmal die Fehlermeldung "Sitzung bereits gestartet". Dafür habe ich diese Zeilen eingefügt:

if(!isset($_COOKIE["PHPSESSID"]))
{
  session_start();
}

aber dieses Mal erhielt ich diese Warnmeldung:

Hinweis: Undefinierte Variable: _SESSION

Gibt es eine bessere Möglichkeit zu prüfen, ob die Sitzung bereits begonnen hat?

Wenn ich die @session_start Wird es dafür sorgen, dass die Dinge richtig funktionieren und die Warnungen einfach verstummen?

0voto

Eduard Hasanaj Punkte 856

Aus meiner Praxis weiß ich, dass vor dem Zugriff auf die $_SESSION[] müssen Sie anrufen session_start jedes Mal, wenn Sie das Skript verwenden. Siehe den Link unten für das Handbuch.

http://php.net/manual/en/function.session-start.php

Zumindest für mich session_start ist als Name verwirrend. A session_load klarer sein kann.

0voto

Leo Tahk Punkte 380

Ich bin bei der doppelten Überprüfung des Status gelandet. php 5.4+

if(session_status() !== PHP_SESSION_ACTIVE){session_start();};
if(session_status() !== PHP_SESSION_ACTIVE){die('session start failed');};

0voto

Manjeet Kumar Nai Punkte 1102

Sie können die folgende Lösung verwenden, um zu überprüfen, ob eine PHP-Sitzung bereits gestartet wurde:

if(session_id()== '')
{
   echo"Session isn't Start";
}
else
{
    echo"Session Started";
}

0voto

SamT Punkte 10134

Sie sollten Ihren Code so umgestalten, dass Sie die session_start() genau einmal pro Seitenausführung.

-1voto

Sukanya Suku Punkte 57
session_start();
if(!empty($_SESSION['user']))
{     
  //code;
}
else
{
    header("location:index.php");
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X