MySQL-gestütztes Loginsystem - was ist zu beachten?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL-gestütztes Loginsystem - was ist zu beachten?

    Hallo.

    Bisher musste man, um in meine Adminpanels zu gelangen, nur ein Passwort eingeben, das in einer Datei als Variable gespeichert war.
    Ich möchte jetzt aber ein Login-System coden, bei dem man sich registrieren kann und man im eingeloggten Zustand sowohl im Frontend als auch im Backend spezielle Funktionen wahrnehmen kann.

    U.a. will ich auch festhalten, wer gerade online ist. Sprich: Ich würde für jeden Aufruf einer Seite einen Eintrag in meiner Log-Tabelle in der Datenbank erstellen mit Angaben zu IP, User-ID, Zeitpunkt des Aufrufs, Referrer, etc.

    Da habe ich jetzt ein paar Fragen:

    1. Kann ich die Log-Tabelle für langfristige, genaue Statistiken zumüllen, ohne, dass die Datenbank wegen der Datenmengen explodiert?

    2. Bekomme ich spürbare Geschwindigkeitseinbußen, wenn ich in der Log-Tabelle so viele Daten gespeichert habe? (auch wenn ich diese gar nicht abfrage?)

    3. Kann ich mein Login-System so alleine auf die Datenbank stützen oder bringt es was, zusätzlich noch Sessions zu verwenden? Wenn ja, was? ^^


    Dürfte für die meisten User hier im Forum nicht lange dauern, meine Fragen zu beantworten.

    Lg,
    Macks
    icedcream.de Webdesign Regensburg

  • #2
    Hier findest du ein alles sagendes Tutorial, das alle deine Fragen beantwortet:
    http://www.php-resource.de/tutorials/read/38/1/

    Edit:
    Um deine Fragen mal eben schnell zu beantworten:
    Sessions sollte man auf jeden verwenden. Diese kannst du dann im User Table deiner DB eintragen und so siehste automatisch wer grade online ist. (SELECT FROM users WHERE session!=NULL).
    Ich verwende das System vom Tutorial in mehreren Projekten und habe für die Statistik folgende Einträge gespeichert: LastLogin, LastAction, OnlineTotal.
    Das sind 3 Einträge am Ende des UserTables die immer via UPDATE aktualisiert werden. Somit brauchste keinen zusätzlichen Table "vollmüllen" und hast trotzdem die Daten.
    Die passwörter würd ich MD5verschlüßelt in der DB ablegen UND:
    Immer schön aufpassen daß du keine injection-möglichkeiten bietest.
    Zuletzt geändert von nichtsooft; 21.01.2008, 18:58.
    WHILE (!$asleep) { $sheep++; }

    Kommentar


    • #3
      Original geschrieben von nichtsooft
      Hier findest du ein alles sagendes Tutorial, das alle deine Fragen beantwortet:
      http://www.php-resource.de/tutorials/read/38/1/

      Edit:
      Um deine Fragen mal eben schnell zu beantworten:
      Sessions sollte man auf jeden verwenden. Diese kannst du dann im User Table deiner DB eintragen und so siehste automatisch wer grade online ist. (SELECT FROM users WHERE session!=NULL).
      Ich verwende das System vom Tutorial in mehreren Projekten und habe für die Statistik folgende Einträge gespeichert: LastLogin, LastAction, OnlineTotal.
      Das sind 3 Einträge am Ende des UserTables die immer via UPDATE aktualisiert werden. Somit brauchste keinen zusätzlichen Table "vollmüllen" und hast trotzdem die Daten.
      Die passwörter würd ich MD5verschlüßelt in der DB ablegen UND:
      Immer schön aufpassen daß du keine injection-möglichkeiten bietest.
      Dankeschööön!


      Bei der User Online-Abfrage werde ich aber überprüfen, wann seine letzte Aktion war, denn, wenn sich der User nicht ordnungsgemäß ausloggt, würde er ja immer noch als online angezeigt werden.

      Lg,
      Macks
      icedcream.de Webdesign Regensburg

      Kommentar


      • #4
        ich hab das so gelöst das User deren letzte Aktion länger als 5min. her ist autom. ausgeloggt werden; Sprich Usertable->Session wird NULL gesetzt.
        WHILE (!$asleep) { $sheep++; }

        Kommentar


        • #5
          Okay...

          Wie realisiert man das denn am Geschicktesten, dass der User (auf Wunsch) beim erneuten Besuch der Seite immer noch (bzw. wieder) eingeloggt ist?
          Klar, über Cookies... da speicher' ich die Session-ID drin und kann die dann mit der session in der Datenbank abgleichen. Lieg ich da richtig?

          Lg,
          Macks
          icedcream.de Webdesign Regensburg

          Kommentar


          • #6
            Nö liegste nicht ...

            Im Cookie würde ich den Usernamen und das Passwort speichern. Das würde bei weitem mehr Sinn ergeben.
            MM Newmedia | MeinBlog

            Kommentar


            • #7
              Original geschrieben von ezkimo
              Nö liegste nicht ...

              Im Cookie würde ich den Usernamen und das Passwort speichern. Das würde bei weitem mehr Sinn ergeben.
              Man denk ich kompliziert.

              Dankeschön.

              Lg,
              Macks
              icedcream.de Webdesign Regensburg

              Kommentar

              Lädt...
              X