![]() |
[PHP] In Benutzeraccount einloggen
Hi!
Ich hab ein kleines Problem und stehe grad irgendwie aufm Schlauch... Ich will auf einer Webseite einen Dienst anbieten, in den man sich mithilfe eines Benutzeraccounts einloggen muss. Das Anlegen/Verwalten der Benutzer ist nicht das Problem, sondern vor allem das Anmelden. Ich dachte bisher immer, ich müsste eine Session-ID erstellen, die in der Datenbank und in einem Cookie abspeichern und bei jedem Seitenaufruf SID und Cookies vergleichen (evtl. noch Uhrzeit vergleichen). Nur wie erstelle ich am besten eine Session-ID? Dafür hab ich dann Google angeschmissen und hab mir auch einiges über Sessions in PHP durchgelesen. Doch da steht nirgendwo, dass man irgendwas in einer Datenbank speichern muss. Im Grunde steht da gar nichts, wie irgendwas gespeichert wird. Wie gesagt, irgendwie steh ich da grad auf'm Schlauch. Kann ich die PHP-Session-Funktionen anwenden und erhalte dadurch eine SID, die auf dem Server bereits gespeichert ist, oder muss ich das irgendwie in einer Datenbank noch abspeichern? mfg malo |
Re: [PHP] In Benutzeraccount einloggen
Die Sessions werden Serverseitig in dateien abgelegt. Ich würde dir den Einsatz von PEAR/Auth vorschlagen.
|
Re: [PHP] In Benutzeraccount einloggen
Sessions:
eigentlich musst du nur session_start(); aufrufen; der Server generiert dann eine session-ID, und sollte die sich auch solange merken, bis du den Browser schließt/die Seite verlässt. Dann könntest du in der Session nach dem Login z.b. speichern, zu welchem Account diese Session zugeordnet ist. Da Sessions serverseitig verwaltet werden sollte das eigentlich sicher sein. |
Re: [PHP] In Benutzeraccount einloggen
Dann ist es nicht notwendig, die Session in der Datenbank abzulegen?
Diese Idee ist mir nämlich gekommen, als ich mir diverse Datenbanken angesehen hab, die eine entsprechende Tabelle "Sessions" besitzen, wo i.d.R. userid, sessionid und ggf. IP und Zeit drinstehen, u.A. phpBB, aber auch andere Systeme. Das hat dann entsprechend für Verwirrung gesorgt :? |
Re: [PHP] In Benutzeraccount einloggen
In der Auth-Klasse des Pear-Repositories kannst du festlegen, wie die Benutzer-Session-Zuordnung erfolgt und wie sie abgelegt wird (z.B. Datenbank)
|
Re: [PHP] In Benutzeraccount einloggen
Die sessionid in der Datenbank zu speichern halte für ein einfaches Anmelde/Login-Script für sinnlos (sobald eine session abgelaufen ist lässt sie sich meines Wissens nach sowieso nicht wieder reaktivieren, oder?).
Diese "Sessions"-Tabelle dient wahrscheinlich irgendwelchen statistischen Zwecken... |
Re: [PHP] In Benutzeraccount einloggen
Es wird ja auch nicht die sessions ansich gespeichert (diese ist eine Datei auf dem Server= sondern die Benutzerdaten und Daten die sessionübergreifend bestehen bleiben sollen.
|
Re: [PHP] In Benutzeraccount einloggen
Und wie komme ich dann anhand meiner Session-ID wieder an die Daten, die auf dem Server hinterlegt sind? Mit session_start() wird ja eine neue SID generiert, aber ich bräuchte ja die Daten, die bereits da sind.
|
Re: [PHP] In Benutzeraccount einloggen
Diese daten legst du in eine Datenbank ab und rekonstruhierst diese in der neu erstellten session.
|
Re: [PHP] In Benutzeraccount einloggen
Na, beim Login hast du ja wohl ein Formular, in das Benutzername und Passwort eingegeben werden.
Dann schaust du, ob es bei deinen gespeicherten Daten einen Account gibt, auf den dieser Benutzername und das Passwort zutreffen. Wenn das der Fall ist, startest du deine Session und speicherst darin den Benutzernamen. Auf einer anderen Seite kannst du dann, wenn du wissen willst, unter welchem Benutzernamen der Betrachter eingeloggt ist (z.b. weil du weitere Daten aus der Datenbank auslesen willst), wieder die Session starten und den vorher gespeicherten Wert auslesen. Z.b. Seite a.php (wo eingeloggt wird) in Pseudo-PHP-Code: Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz