Frage wegen Rechte u.a

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

  • Frage wegen Rechte u.a

    Hallöle

    ich habe ja nach dem Tut ein Login erstellt:

    http://www.php-resource.de/tutorials/read/38/1/

    so nun möchte ich gerne es so machen das Admin nur bestimmte Sachen sieht die der User nicht sehen sollte. Wie stelle ich dies nun an ?

    ich habe ne DB mit ID, Username ,Password und E-Mail.
    Mit Fehlen die ansätze. Über einfache Anregungen würde ich mich sehr freuen.

    Gruß
    Dennis

  • #2
    Re: Frage wegen Rechte u.a

    Füge eine weitere Spalte in deine Usertabelle ein für die Usergruppe, und setze darin ein Kennzeichen - Admin, einfacher Benutzer, etc.

    Und bei deinen Einträgen machst du das analog - ein Kennzeichen, wer darf sehen. Oder ggf. mehrere Kennzeichen, Datentyp SET bietet sich dann vielleicht an.

    Und dann vergleichst du beim Auslesen der Beiträge mit dem Kennzeichen des aktuellen Nutzers.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      also ich hoffe das ich es richtig verstanden haben. ich Lege noch eine Spalte an und benenne diese zb. recht. da drinne mache ich zum Beispiel eine 1 für Admin eine 2 für den User. Soweit so gut. Dann muss ich ja der Session dies auch mitteilen sprich bei der Überprüfung muss geprüft werden ob der User die Rechte hat bzw die Seite sehen darf. Hier mal die sessionhelpers.inc.php :

      PHP-Code:
      <?php
      function connect()
      {
          
      $conmysql_connect('localhost','','') or die(mysql_error());
           
      mysql_select_db('test',$con) or die(mysql_error());
      }

      function 
      check_user($name$pass)
      {
          
      $sql="SELECT UserId
          FROM users
          WHERE UserName='"
      .$name."' AND UserPass=MD5('".$pass."')
          LIMIT 1"
      ;
          
      $resultmysql_query($sql) or die(mysql_error());
          if ( 
      mysql_num_rows($result)==1)
          {
              
      $user=mysql_fetch_assoc($result);
              return 
      $user['UserId'];
          }
          else
              return 
      false;
      }

      function 
      login($userid)
      {
          
      $sql="UPDATE users
          SET UserSession='"
      .session_id()."'
          WHERE UserId="
      .$userid;
           
      mysql_query($sql);
      }

      function 
      logged_in()
      {
          
      $sql="SELECT UserId
          FROM users
          WHERE UserSession='"
      .session_id()."'
          LIMIT 1"
      ;
          
      $resultmysql_query($sql);
            return ( 
      mysql_num_rows($result)==1);
      }

      function 
      logout()
      {
          
      $sql="UPDATE users
          SET UserSession=NULL
          WHERE UserSession='"
      .session_id()."'";
           
      mysql_query($sql);
      }

      connect();
      ?>
      da Denke ich mal das ich bei der function check_user um genau zu sein bei WHERE einen Datensatz hinzufügen muss ??

      Gruß
      Dennis

      Kommentar


      • #4
        Dann muss ich ja der Session dies auch mitteilen sprich bei der Überprüfung muss geprüft werden ob der User die Rechte hat bzw die Seite sehen darf
        Ich würde jetzt die Prüfung nach der Berechtigung nicht in die Fkt einbauen, sondern jeweils vor Ausgabe der Daten prüfen ob der User berechtigt ist, sich das anzusehen.
        Beim Login einfach noch
        PHP-Code:
        //function check_user
        $sql="SELECT UserId,recht
            FROM users
            WHERE UserName='"
        .$name."' AND UserPass=MD5('".$pass."')
            LIMIT 1"

        und das Ergebnis von recht in eine Session Var speichern. Wenn du die Berechtigungs-Prüfung in der Fkt hast, dann müsstest du diese jeweils vor jeder Ausgabe aufrufen. Drum die Berechtigung besser in der Anzeigeseite prüfen (imho)

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Vielen Dank Jahlives !!

          Ich habe jetze noch eine Frage und Zwar muss ich es ja überprüfen lassen wie du schon schriebst in ner Variabel Speichern.
          so meine sessionhelpers.inc.php habe ich ja oben schon gepostet und ich Denke mal das ich diesen Functions Block bearbeiten muss:

          PHP-Code:
          function check_user($name$pass)
          {
              
          $sql="SELECT UserId
              FROM users
              WHERE UserName='"
          .$name."' AND UserPass=MD5('".$pass."')
              LIMIT 1"
          ;
              
          $resultmysql_query($sql) or die(mysql_error());
              if ( 
          mysql_num_rows($result)==1)
              {
                  
          $user=mysql_fetch_assoc($result);
                  return 
          $user['UserId'];
              }
              else
                  return 
          false;

          in so umändern:

          PHP-Code:
          function check_user($name$pass$rechte)
          {
              
          $sql="SELECT UserId, rechte
              FROM users
              WHERE UserName='"
          .$name."' AND UserPass=MD5('".$pass."') rechte = ?????  // da stehe 
          ich im moment auf dem Schlauch.
              LIMIT 1"
          ;
              
          $resultmysql_query($sql) or die(mysql_error());
              if ( 
          mysql_num_rows($result)==1)
              {
                  
          $user=mysql_fetch_assoc($result);
                  return 
          $user['UserId'];
              }
              else
                  return 
          false;

          ich Denke mal das dies soweit richtig ist. Den Admin hae ich bei den Rechten eine 1 und den Nutzer 0 gegeben.

          Gruß
          Dennis

          Kommentar

          Lädt...
          X