[Problem]PHP Admin-Rang System

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [Problem]PHP Admin-Rang System

    Guten Tag
    Mein Problem ist:
    ich habe ein Admin rank System mit 3 rängen 1,2&3 nur mein problem ist: z.b ich habe 2acc logge mich mit einem rang 3 ein und dort geht alles aber dann logge ich mich aus und mit dem anderen rang 1 oder 2 und dann habe ich die rechte bzw sachen wie bei rang 3 also nimmt der acc die rang-id 3 und nicht 2 meine frage ist jz wie ich es mache das er die rang id nimmt die in der mysql tabelle vom user auch steht?
  • Mein Code:

    Quellcode

    1. ​<?
    2. $abfrage = "SELECT * FROM login";
    3. $ergebnis = mysql_query($abfrage);
    4. while($row1 = mysql_fetch_object($ergebnis))
    5. {
    6. $rang = $row1->rang;
    7. }
    8. if($rang > 2) {?>
    9. <div class="form-group">
    10. <label for="exampleInputPassword1">Rang</label>
    11. <input type="number" class="form-control" style="border-radius:0px" id="rang" placeholder="Rang" name="rang">
    12. </div>
    13. <?
    14. }
    15. ?>
    Alles anzeigen
  • Da du atm. immer an der letzte zeile von von login endest,ist der benutzt mitdem du dich "einloggst" scheinbar immer der gleiche, wie Airfrischung schon sagte:

    Airfrischung schrieb:

    Sowas hier:

    SELECT * FROM admintabelle WHERE userid = ?

    im Queryresult stehen dann alle Werte und Tabellenfelder(namen), aber nur wo userid = ? ist.
    Das ? solltest du austauschen mit der Userid, die eingeloggt wurde.


    Die schleife geht weiter bis kein datensatz mehr da ist und speichert denn dann in der variable, daher immer der gleiche Benutzer.

    Vielleicht hilft dir ja das: 1keydata.com/de/sql/sql-where.php

    mfG s1ck

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von s1ckST4R ()

  • Richtig. Deine Abfrage fragt global - und deine Whileschleife läuft immer bis zum letzten Datensatz, der sich in der Datenbank befindet. Du musst die Suche eingrenzen, eben mir der WHERE Abfrage.

    Es sieht so aus, als hättest du das Feld "rang" in der selben Tabelle wie die Login Daten des Nutzers. Also gehts nach diesem Schema ab:

    Also:
    User versucht sich einzuloggen
    <SELECT rang, password FROM login WHERE password = '<password>'> (oder mit * alle Felder selektieren, musst du wissen. Ich habe gelernt: selektiere nur das, was du aktuell auch benötigst (oder in paar Sekunden auch nochmal, aber nicht erst auf irgendeiner Unterseite (o.ä))
    PW passt = User einloggen
    Wenn der User eingeloggt werden konnte, also wo password gleich dem Passwort entspricht, welches er im Loginfeld eingegeben hat, dann hast du auch gleichzeitig das Ergebnis vom Datenbankfeld "rang".
    Das kannst du in einer Variable abspeichern und dann damit machen, was du willst. Beispielsweise irgendwo anzeigen lassen.

    Auch solltest du die mysqli Funktionen benutzten, statt die veralteten mysql Befehle. Keine Sorge, du die meisten Befehle sehen genauso aus wie die alten und lassen sich auch so benutzen.

    Gruß