AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] In Benutzeraccount einloggen

Ein Thema von malo · begonnen am 1. Mär 2007 · letzter Beitrag vom 1. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

[PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:22
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:28
Die Sessions werden Serverseitig in dateien abgelegt. Ich würde dir den Einsatz von PEAR/Auth vorschlagen.
Markus Kinzler
  Mit Zitat antworten Zitat
Sebioff

Registriert seit: 27. Sep 2005
18 Beiträge
 
Delphi 6 Personal
 
#3

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:31
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.
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#4

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:35
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:39
In der Auth-Klasse des Pear-Repositories kannst du festlegen, wie die Benutzer-Session-Zuordnung erfolgt und wie sie abgelegt wird (z.B. Datenbank)
Markus Kinzler
  Mit Zitat antworten Zitat
Sebioff

Registriert seit: 27. Sep 2005
18 Beiträge
 
Delphi 6 Personal
 
#6

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:41
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...
Sebastian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:45
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#8

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 20:59
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 21:03
Diese daten legst du in eine Datenbank ab und rekonstruhierst diese in der neu erstellten session.
Markus Kinzler
  Mit Zitat antworten Zitat
Sebioff

Registriert seit: 27. Sep 2005
18 Beiträge
 
Delphi 6 Personal
 
#10

Re: [PHP] In Benutzeraccount einloggen

  Alt 1. Mär 2007, 21:14
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:
session_start();
if (benutzername_existiert and passwort_richtig){
$_SESSION['username']="benutzername";
}
Auf Seite b.php kannst du den Benutzernamen dann wieder auslesen:
Zitat:
session_start();
echo"Dein Benutzername ist: ".$_SESSION['username'];
Da du weißt wie der Benutzername lautet kannst du dann auf Seite b.php ja auch weitere, zu diesem Benutzernamen gehörige Daten aus deiner Datenbank auslesen (bei sowas sollte man dann allerdings mit User-IDs arbeiten, nicht mit Strings...egal, versuch das erstmal; wenns klappt, kannst dus ja immernoch ändern )
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz