Rechteverwaltung und weitere Links

  • Hallo zusammen,

    nachdem ich auf Basis des php-kurs (login-bereich-db) ein php-Programm erarbeitet habe, das einwandfrei funktioniert, hänge ich an dem Punkt, die in der DB vergebenen Rechte mit weiterführenden z.B. Links zu Seiten oder auch Begrüßungstexten der eingeloggten Personen zu realisieren. Ich teste schon seit über 10 Tagen alles möglichen Varianten, komme aber leider auf keinen grünen Zweig.

    Kann und will mir jemand helfen? Ich wäre sehr dankbar für die Unterstützung.

    MfG - Holger

  • meinst du das hier ?

    https://www.php-kurs.com/db-login-bereich-integrieren.htm


    Wenn du das genau so gemacht hast dann ist doch alles da was du brauchst .

    An besten zeigst du uns mal was du schon gemacht hast ( möglichst mit Testseite ).

    In der db währe es ja besser die Benutzer id als Name zu ändern .

    Wenn die Datenbank abfrage Passwort und Name stimmt wird ja eine SESSION gesetzt.

    Die fragst du dann an Anfang einer Seite ab und wenn die stimmt leitest du ihn weiter auf einer anderen Seite


    Am einfachsten zeigst du mal was du hast und wie du es jetzt gemacht hast , dann ist es einfacher das genau zu sagen.


    Falls du eine andere Seite meintest dann poste mal den Link bitte

  • Bitte poste demnächst deinen Code hier in den Code tags weil so ist das nicht schön.

    Ein Bild zu deiner Webseite bringt leider auch nix ,weil wie soll man da was testen.

    Wenn dan Link zur Seite , und wenn es local ist dann geht nur nee Testseite oder man sagt es das es noch nicht online ist .


    Aber du hast doch in deinen Code doch schon alles was du brauchst

    Zeile 109 - 113

    Code
    1. if ( $zugang->num_rows == 1 ) {
    2. $_SESSION['einloggen']['nutzerid'] = $nutzerid;
    3. $_SESSION['einloggen']['rechte'] = $rechte;
    4. header('Location: eingeloggtTPOSV.php');
    5. }

    da kannst du ja jetzt mit arbeiten.

    zb rechte = admin

    nutzerid = Basti1012,

    und wenn beides stimmt schickst du mich auf einer anderen Seite oder blendest irgendwas ein


    Wo kommst du den da jetzt nicht weiter genau ?

    Poste dann auch vorhandenen Fehler was php dir schreibt

  • Erstmals danke für die Antwort.

    Ja das stimmt schon, ich habe aber in der phpmyadmin Datenbank 2 unterschiedliche Rechte vergeben, die wiederum auf 2 unterschiedliche geschützte Seite weiterleiten sollen. Und darüberhinaus würde ich gerne die Leute, die sich mit ihren Zugangsdaten einloggen (die ich vergebe) mit ihrem Namen begrüßen, aus der Datenbank heraus.

    Fehler in dem Sinn wird nicht gemeldet, es sei denn ich bastele daran herum und setze noch einen "header mit einer anderen geschützten Seite usw.

  • Ich weiß nicht wo du probleme hast, weil ja alles schon da ist, was du brauchst.

    Aber damit wir vom gleichen reden habe ich mal selber was gebaut

    * Link entfernt , weil existiert nicht mehr *

    Habe mal 2 Namen erstellt mit unterschiedlichen rechte


    als Admin

    E-Mail = admin@admin.de

    pass = 1111


    als User

    E-Mail= user@user.de

    pass 1111


    Kannst aber auch selber Namen erstellen, E-Mail muss nur aussehen wie eine wegen valide.

    Beim Registrieren kannst du selber angeben ob du User oder Admin bist (kann natürlich unendlich verlängert werden die rechte)

    Nach dem Einloggen siehst du, dass der Admin etwas mehr Auswahl hat als der normale User. Die mehr Auswahl sollen deine Seiten darstellen, wo von du gesprochen hast .

    Nach dem einloggen steht da auch HALLO admin@admin.de oder halt den Namen, den man da angegeben hat ( Mein falll nur E-Mails möglich). Wenn da ein Name stehen soll und keine E-Mail , muss man bei der Registrierung noch ein extra Feld hinbauen, wo man seinen Namen angeben kann.


    Ist das den überhaupt so, was in der Art was du willst?

  • Hallo basti1012,

    danke für den Vorschlag. Im Prinzip ist es das, was ich möchte. Aber die Daten sollen alle aus der MySQL DB kommen. Das heißt, ich lege die Datenbank an mit Benutzernamen und Passwort und die Rechte, es sind nur 2 Unterscheidungen bei den Rechten. In der DB habe ich die Spalten id, nutzerid, kennwort und rechte.

    Dann loggt sich der Benutzer mit den von mir ihm zugesandten Benutzernamen und Passwort ein und entsprechend der hinterlegten Rechte wird er an auf die dazugehörige Seite weitergeleitet.

    Mein Problem ist, es funktioniert alles mit dem Einloggen usw. ich weiß aber nicht die beiden Rechte zu unterscheiden. Mir gelingt es immer nur die Weiterleitung auf eine Seite, egal welches Recht der Benutzer hat. Wie man dies unterscheidet ist mir nicht bekannt. Meine beiden Rechte heißen "TPOSV" und "GASTSV" und die Weiterleitung geht entweder zu "eingeloggtTPOSV.php" oder eingeloggtTPDSV.php". Aber wie kann ich das realisieren?

  • Hallo zusammen,

    nach meiner ersten Euphorie über das Funktionieren in Xampp (localhost) kehrt der Frust wieder ein. In Echtzeit, also auf dem Strato Server geht es leider nicht so, wie local. Die Verbindung zu der DB klappt, kein Problem, ich kann auf alle Daten zugreifen. Aber der Link zu weiteren Seiten funktioniert nicht, da springt er immer wieder auf "Bitte Formular komplett ausfüllen", obwohl die Zugangsdaten passen, war ich über "echo "<li> $id $nutzerid $kennwort und $rechte" geprüft habe. Ich glaube es liegt am Link. Ist es besser über header oder über href zu verlinken und welchen Pfad muss ich angeben, in localhost habe ich Location genutzt. Aber so weit mir bekannt, muss ich bei href vorher ?> verlassen oder?

    Danke im Voraus für die Antwort.

    Gruß Holger

  • Ist es besser über header oder über href zu verlinken

    Du solltest dir erst einmal klar machen, wo da der Unterschied ist. Mit der header-Funktion leitest du per Script weiter, mit einem Link muss der User erst einmal drauf klicken.


    die header-Funktion erwartet eine vollständige URL, also z.B.

    Code
    1. header("Location: https://www.google.de");

    Es funktioniert in den meisten Fällen auch eine relative URL, aber das würde ich besser vermeiden.


    Und ohne deinen aktuellen Quellcode zu kennen, kann man dir nicht helfen.

  • Hallo,

    leider funktioniert es auch mit dem gut gemeinten Vorschlag nicht besser.

    anbei der zugrunde liegende Quellcode:

  • Wie so oft gilt auch hier:


    Richtig debuggen


    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.