2 Stimmen

PHP Benutzerdaten speichern ohne Sitzungen

Gibt es eine Möglichkeit, Benutzerdaten wie Benutzer-ID, E-Mail usw. zu speichern, damit sie von allen Seiten einer Website aus zugänglich sind, nachdem sie sich angemeldet haben, aber ohne Sitzungen oder Cookies zu verwenden?

Zum Beispiel:

Klasse Benutzer
{
  var $benutzerid;
  var $benutzername;
  var $email;

  .. Methoden..
}

nachdem sie sich auf login.php angemeldet haben

$aktuellerBenutzer = new Benutzer($_POST['benutzername'])

jetzt, wie greife ich auf $aktuellerBenutzer von einer anderen Seite aus, wie index.php, zu, wenn ich überhaupt keine Sitzungen oder Cookies verwenden sollte?

damit ich in index.php folgendes tun könnte:

if ($aktuellerBenutzer->benutzerid > -1)
{
  echo "Sie sind als angemeldet: " . $aktuellerBenutzer->benutzername;
}
else
{
  echo "klicken Sie hier, um sich anzumelden";
}

Ich habe eine ähnliche Frage schon einmal gestellt, hier, aber die Antworten entsprachen nicht meinen Bedürfnissen.

0 Stimmen

Aber das ist der ganze Grund, warum wir Sitzungen verwenden. Kann ich fragen, warum Sie keine Sitzung oder keinen Cookie verwenden möchten?

0 Stimmen

@Sev: Warum nicht? Könnten Sie uns einen Grund geben, warum Sie es nicht verwenden möchten? Dann können wir Ihnen eine bessere Antwort geben.

0 Stimmen

@Sev: Sitzungen sind absolut der richtige Weg, um Dinge für die Internationalisierung für eine Benutzersitzung (z. B. für die gesamte Zeit, in der sie eingeloggt sind) zu globalisieren. Deshalb werden sie Sitzungen genannt. Allerdings sind sie nicht gut geeignet, um Dinge für nur eine Anfrage zu globalisieren, da sie speicherplatzseitig verschwenden, indem sie alles nach Abschluss der Anfrage speichern. Und ja, ich empfehle, Ihre Objekte in der Sitzung zu speichern. Meine Empfehlung, um Ihren OOP-Stil beizubehalten, ist es, ein Sitzungsobjekt (Singleton, vielleicht?) in Ihrer Sitzung zu speichern, um die Sitzung zu kapseln, und nur mit diesem zu interagieren. Siehe meine Antwort unten für ein schnelles Beispiel.

4voto

Cam Punkte 14515

Wenn Sie übertrieben begeistert von OOP sind und sich weigern, direkt mit Sitzungen/Cookies zu interagieren, würde ich Ihnen dringend empfehlen, Sitzungen einfach zu kapseln, anstatt sie neu zu erstellen. Selbst etwas so einfaches wie dies:

//oopsess.php

Leicht anpassbar, wenn Sie die Daten clientseitig - in einem Cookie - speichern möchten, anstatt nur die Session-ID clientseitig zu speichern (was dies tut).

Bearbeitung: Auch wenn es um OOP geht, wenn Ihr Code komplett auf OOP basiert, ist dies tatsächlich eine wirklich gute Möglichkeit, Ihren Code sauber zu halten - nicht nur ein Weg, um Ihre OOP-Gelüste zu befriedigen, wie ich es oben angedeutet habe ;)

1voto

miku Punkte 170688

Es ist ein wenig weit hergeholt, das gebe ich zu:

Bearbeitung: Die Website scheint in diesen Tagen beliebt zu sein, sie wird morgen wieder online sein. Grundsätzlich besagt die Studie, dass Browser allein in der Lage sind, fingerabdruckähnliche Daten an ihre Gegenüber zu liefern.

0voto

user351502 Punkte 1

Sev sagte: "Eine Idee zu erwägen, die ich schon einmal gesehen habe, ist das Speichern einer Sitzungs-ID als Cookie und das Speichern der Sitzung in Ihrer Datenbank. Das Tolle daran ist, dass es dem Administrator volle und einfache Kontrolle über die Sitzungen ermöglicht. Außerdem können Sie interessante Dinge wie die Funktion "Alle anderen Sitzungen abmelden" von Gmail implementieren. Einige Anregungen :)"

Nur eine Anmerkung, dass wir das machen und es gut funktioniert.

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