2 Stimmen

Das Einrichten von zwei verschiedenen Sitzungen auf demselben Domain für zwei verschiedene Ordner in PHP

Ich habe eine Anwendung, die ein Benutzermanagement mit Sitzungen verwendet. Unter dem Stammverzeichnis der Anwendung habe ich ein Admin-Panel, für das ich eine andere Sitzung benötige, da es sonst mit der Stamm-Sitzung in Konflikt gerät.

-root
   -admin/adminFiles
   -rootFiles

Ich habe diesen Thread durchgelesen und auch die Dokumentation überprüft und den unten stehenden Code in meinem Admin-Verzeichnis ausprobiert

if(HTTP_SERVER != 'http://localhost'){
    session_save_path("/tmp");
}
 session_name('session_for_admin');
 ini_set('session.cookie_path','/session_for_admin');
 session_set_cookie_params(60*60*24*5,'session_for_admin');
 session_start();

Diese Sitzung startet einfach nicht. Es gibt auch keine Fehlermeldungen in den Logs. Was mache ich hier falsch.

Ich möchte es auf diese Weise machen, weil auf das Admin-Verzeichnis nur von einigen privilegierten Benutzern und nicht sehr häufig zugegriffen wird. Ich bin mir bewusst, dass session_name() zusätzlichen Overhead hinzufügt. Aber ich würde es gerne auf diese Weise durchführen.

1voto

Also in Bezug auf das, was du über das Setzen einer Administratorflagge in deiner Datenbank sagst:

nehmen wir an, dass $admin einen booleschen Wert enthält: true, wenn deine Datenbank den Benutzer als Administrator bestätigt hat, false, wenn nicht

dies wird die Sitzung mit dem Namen aktivieren, basierend auf dem Ergebnis dieses booleschen Wertes:

if ($admin)
 {session_name('session_for_admin');}
else
 {session_name('session_for_others');}
session_start();

dies wird zwei verschiedene Sitzungen starten und verwalten, ähnlich wie zwei verschiedene Benutzer ihre eigene Sitzung haben werden.

zugegebenermaßen könntest du ab da andere Dinge machen wollen, wie zum Beispiel das Ändern des Arbeitsverzeichnisses oder das Einbinden unterschiedlicher Dateien.

Das könntest du auch einfach tun, indem du eine Variable in deiner Sitzung setzt, wenn der Benutzer als Administrator angemeldet ist:

$_SESSION['admin'] = true;

ab dann kannst du überprüfen und einige Dateien oder ähnliches nutzen, wie zum Beispiel so:

if ($_SESSION['admin'])
 {// Dateien im Admin-Ordner nutzen
  }
else
 {// Dateien im Stammverzeichnis nutzen
  }

0voto

Ehab Aboassy Punkte 3

Beachten Sie, vor der Sitzung session_start() die Funktion session_name() zu verwenden. Zum Beispiel, im ersten Bereich, verwenden Sie

session_name("AdminPanel");
session_start();

Im zweiten Bereich, verwenden Sie

session_name("WebsiteID");
session_start();

Weitere Informationen finden Sie unter session name

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