Kundendatenbank erstellen mit User Rollen

  • Hallo zsm,


    ich muss in meinem Praktikum eine Projektarbeit machen in der ich eine Kundendatenbank erstelle und in dem Rahmen muss ich folgendes machen:

    1. Eine Login Seite die durch Username und Passwort erkennt welche Userrolle sich angemeldet hat.

    Rolle 1: Admin, der sieht die ganze Tabelle mit den Kundendaten (HTML Aufbau) und kann zusätzlich neue Kunden, Admins und Schreiber anlegen oder diese auch löschen.

    Rolle 2: Schreiber, der sieht die ganze Tabelle mit den Kundendaten (HTML Aufbau) und kann zusätzlich neue Kunden, anlegen oder diese auch löschen.

    Rolle 3: Leser, der sieht die ganze Tabelle mit den Kundendaten (HTML Aufbau).

    2. Dann wird je nach Userrolle die Tabelle aufgebaut sprich bei Admin wird alles angezeigt alle Buttons die alles können usw. Bei Leser wird nicht alles aufgebaut

    3. Dann muss ich noch daran denken, wie ich vorgehe wenn jemand sein eigenes Passwort vergisst.


    Könnt ihr mir Ideen geben, wie ihr da vorgehen würdet? Oder braucht ihr noch mehr Infos?


    Dies ist aber das Grundkonzept was ich machen muss.

  • Ich zucke bei solchen Fragen immer zusammen und denke mir, da will sich es jemand leicht machen und nicht selber denken.


    Daher: Wie sieht denn dein Konzept bisher dazu aus? Wir können das dann notfalls korrigieren bzw. erweitern.

  • Aaaalso,

    ich möchte eine Datenbank haben mit zwei Tabellen eine mit User (name, password etc.) und eine mit Rolle (id und rolle)

    Beide miteinander per PK und FK verknüpft.


    1. Eine Login Bereich, da wird dann erkannt welche Rolle du hast

    2. Je nachdem welche Rolle du hast baut sich die Seite dementsprechend auf.

    Wenn z. B. sich der Leser anmeldet kann er nur kunden, straße usw suchen

    Wenn sich der Admin anmeldet, sieht dieser zusätzliche Buttons (Kunden anlegen, inaktiv machen, Admins anlegen, Rollen an bestehende User vergeben).


    Im großen und ganzen. Fehlen noch paar Sachen. Die man später ausbauen könnte, wie Passwort vergessen usw

  • Die Rolle würde ich dem User direkt zuordnen und keine zweite Tabelle dafür einrichten, also z.B.


    id, user, password, status


    Z.B. mit Status 0 darf man nix, mit Status 1 darf man eingeschränkt, und mit Status 2 darf man alles.

    Beim Login speicherst du den Status in einer Session und somit kommst du jederzeit dran.

  • Das sind im Grunde erstmal genug Anhaltspunkte zum arbeiten.


    Grundlage bei jedem Projekt ist die Planung, welche ganz vorne ansteht. Nimm dir am besten Stift und Blatt und schreibe handschriftlich das auf, was Du machen musst. Formuliere ganze Sätze, lasse es in dein Hirn eindringen. So merkst Du es Dir besser und kannst besser mit der Pojektplanung umgehen. Das muss keine DIN A4 Seite sein, sondern nur ein paar Sätze.


    Dann lege fest, was Du alles brauchst.


    In deinem Fall wären das:

    1. Eine login Seite für den Userlogin
    2. Eine tabellen Seite für die Ansicht der Nutzerdaten.
    3. Eine Seite zur wiederherstellung des Passwortes.
    4. Eine CSS Datei für das Design
    5. Eine Serverseitige Datei welche die Datenbankverbindung aufbaut
    6. Frameseiten welche sich im Unterverzeichnis befinden. Diese kannst Du jenachdem reinladen, ob sie benötigt sind oder nicht. Diese werden die Buttons enthalten und das Userinterface für die verschiedenen Rollen. Es muss 4 davon geben, wieso erzähle ich gleich
    7. Eine Datenbank mit verschiedenen Tabellen und Zeilen

    Dann mache dich darüber klar, welche Werkzeuge Du nutzen willst. Es gibt eine Hand voll mit der man es machen kann. Lege fest welche Sprache, ob und welche Bibliotheken und welche Datenankverbindungsbrücke Du nutzen willst.


    Dein Arbeitgeber wird da konkrte Vorstellungen haben, am besten fragst Du ihn.


    Das könnte dann eine Konstilation sein wie diese: PHP für die Serverseitige verarbeitung, PDO für die Requests an die Datenbank und HTML+CSS für die Strukturierung der Website. Das wäre das minimalste was benötigt ist.


    Dann machst Du Dir gedanken, wie die Datenbank aufgebaut sein muss. Fassen wir zusammen:


    Da in deiner Beschreibung nicht ersichtlich wird, was alles für die Kunden gespeichert werden muss, reicht es nach deinen genannten Informationen, eine Tabelle zu nutzen. Diese hat folgende Spalten:


    1. ID zur Nuterkennung
    2. Vorname des Nuters
    3. Nachname
    4. Emailadresse
    5. passwort
    6. Rolle

    Die Rolle kann als integer abgespeichert werden und je nachdem kann PHP entscheiden welche Daten man braucht und wie die Darstellung ist.


    Überlege wie viele Rollen Du brauchst. Ich zähle 4 Rollen. Die 4. ergänzt sich dadurch, dass es immer einen Oberadmin geben sollte, welche nicht von anderen Admins gelöscht oder verändert werden kann. Diese 4. Rolle erhält nur der Websitebetreiber und kein anderer. Das ist eine reine aber wichtige Sicherheitsmaßnahme und sollte immer bedacht werden.


    Der letzte Punkt, "Passwort vergessen" Ich persönlich bevorzuge immer die Variante dass der Nutzer selbst sein neues Passwort festlegen kann. Es gibt auf Websites in denen Du ein neues temporäres Passwort per Email zugeschickt bekommst, das ist aber unpraktisch, dar das Passwort nur temporär ist und es sowieso wieder geändert werden muss. Aber vielleicht hat dein Arbeitgeber dazu auch konkrete Vorstellungen. Frage ihn immer bei unklarheiten.


    Du musst dann ein Webdesign überlegen, vor Allem damit Du das Layout der Website kennst. Dabei musst die keine Farben oder andere schnörkelige Sachen festlegen. Lediglich das Layout ist wichtig, damit Du die Elemente bereits richtig positionieren kannst.

    Dann setzt Du bei jeder Seite das Grundgerüst auf, setzt die Datenbank auf und erstellst alle nötigen Dateien und Ordner die Du brauchst. Du überlegst dann genau wie viel Inhalt jede Seite brauchst und ergänzt diesen. Wenn das alles steht kannst Du anfangen zu programmieren und alles logisch aufbauen. Wenn alle Bugfrei funktioniert, dann kannst Du dich an das Design setzen.


    Mag sein das ich noch was vergessen habe, aber ich will dir ja nicht alles vorkauen.

  • Das sind im Grunde erstmal genug Anhaltspunkte zum arbeiten.

    ....

    Danke für die sehr ausführliche Antwort und deine Mühe. Echt super muss ich sagen. Vielen Dank ich versuche dann mal mich langsam vorzudringen.

    Die Rolle würde ich dem User direkt zuordnen und keine zweite Tabelle dafür einrichten, also z.B.


    id, user, password, status


    Z.B. mit Status 0 darf man nix, mit Status 1 darf man eingeschränkt, und mit Status 2 darf man alles.

    Beim Login speicherst du den Status in einer Session und somit kommst du jederzeit dran.

    wäre es viel umständlicher auf lange sicht ohne die sessions zu arbeiten habe das noch nie mit php gemacht

  • wäre es viel umständlicher auf lange sicht ohne die sessions zu arbeiten habe das noch nie mit php gemacht

    Wie ist das gemeint? Sessions brauchst Du. Das gibt es keinen Weg drum herum. Wie sonst willst Du die Daten aus der datenbank für den User zwischenspeichern um zu prüfen ob und welcher Nutzer eingeloggt ist?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!