Ankündigung

Einklappen
Keine Ankündigung bisher.

Nur mit Rechten uploaden dürfen.

Einklappen

Neue Werbung 2019

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

  • Nur mit Rechten uploaden dürfen.

    Ich würde gerne einen Upload-Button auf meine Seite einbringen, auf den nur User mit bestimmten Rechten zugreifen dürfen. Habe eine Datenbank zur Verfügung und auch einen Login. Wie mache ich das z.B mit der Datenbank, dass es nur bestimmte User dürfen?


  • #2
    Hey quhxl,

    das nur bestimmte User einen Upload machen dürfen, kannst du mit den Rechten klären. Du kannst in dieser Tabelle eine neue spalte hinzufuegen mit dem namen rechten und dann kannst du z.B. wenn der User in der Spalte Rechte 1 stehen hat, dann darf er Uploaden wenn nicht dann darf er das nicht. Am besten wäre es wenn du die rechte in einer Session speichern kannst. Dann musst du es nicht von der Datenbank abrufen.

    Ich zeige dir mal ein Beispiel mit der Datenbank:

    PHP-Code:


    $user_id 
    $_SESSION["uid"]; // Hier übertragen wir die Benutzer ID in einer Variable

    $datenbankVerbindung = new mysqli("localhost","root","root","test"); // Hier bauen wir die Verbindung auf

    $abfrage $datenbankVerbindung->query("SELECT rechte FROM id = '$user_id'"); // Hier kommt die Abfrage das die Tabelle uns die Rechte von dem jeweiligen User anzeigen soll

    $datenSatz $abfrage->fetch_assoc(); // Hier holen wir den Datensatz in diesem Fall "rechte"

    if($datenSatz["rechte"] === "1")  { // Hier machen wir nichts anderes als zu schauen das in den Rechten die zahl 1 steht, ist es der Fall dann darf der User den Formular sehen

         //Dann den Formular anzeigen

    }

    else {

       
    //Hier kannst du selbst entscheiden, was du machen möchtest. Entweder eine Fehlermeldung zeigen oder zurück zur Startseite schicken oder oder


    Oder du kannst es auch mit Session machen. Dazu legst du dir die Spalte rechte an und speicherst beim Einloggen die rechte in einer Session. hier ein Beispiel:

    PHP-Code:


    //Beim einloggen in session speichern


    if($UserEingeloggt) {

      
    //hier die rechte von der Tabelle abrufen von dem jeweiligen benutzer und diese in einer Session speichern
      // z.B.
      
    $_SESSION["rid"] = $datensatz["rechteVomUser"]; // Ich habe hier die Session rid genannt, du kannst es selbst benennen wie du es möchtest

    }

    //Abfrage vom Formular

    if($_SESSION["rid"] === 1) {

       
    //Formular anzeigen

    }

    else {

       
    //Hat kein recht um den Formular zu sehen



    Mfg
    Webseeder


    PS: Ich weise daraufhin das dieses Script nicht selbst getestet wurde. Diese Script enthält Fehler und kann nicht einfach kopiert und benutzt werden. ich möchte noch darauf hinweisen, dass es ziemlich viele möglichkeiten gibt um auf die Lösung zu kommen. Dies ist nur ein Beispiel meinerseits.

    Kommentar


    • #3
      Kannst du mir sagen was der Fehler ist?

      Abfrage-Script:
      PHP-Code:
      <?php


      include('phpSkripte/login.php');
      // mysqli_connect() function opens a new connection to the MySQL server.
      $user_check $_SESSION['login_user'];
      $abfrage "SELECT rechte FROM login where username = '$user_check'";
      if (
      $abfrage == 1) {
        echo 
      "JA";
      }else {
        echo 
      "NEIN";
      }

      ?>
      Login-Script:

      PHP-Code:
      <?php



      $conn 
      mysqli_connect("localhost""root""""einloggen");

      session_start();


      $user_check $_SESSION['login_user'];


      $query "SELECT username from login where username = '$user_check'";
      $ses_sql mysqli_query($conn$query);
      $row mysqli_fetch_assoc($ses_sql);
      $login_session $row['username'];

      ?>





      profile.php

      <?php



      include('session.php');

      if(!isset(
      $_SESSION['login_user'])){
      header("location: index.php");
      }

      ?>

      Kommentar


      • #4
        $abfrage = "SELECT rechte FROM login where username = '$user_check'";
        if (
        $abfrage == 1)

        Da fällt dir nichts auf?
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          Wenn, dann würde ich als absoluter Anfänger nicht so dumm fragen.

          Kommentar


          • #6
            Dann lies noch mal im Handbuch nach.

            Kommentar


            • #7
              Achtung: SQL Injection
              [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

              Kommentar


              • #8
                Zitat von quhxl Beitrag anzeigen
                Wenn, dann würde ich als absoluter Anfänger nicht so dumm fragen.
                Sorry, aber das muss auch einem Anfänger auffallen, und wenn nicht, dann ist Programmieren das falsche Hobby.

                Da steht doch, wenn man die Variable ersetzt:
                PHP-Code:
                if ("SELECT rechte FROM login where username = '$user_check'" == 1

                Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                Kommentar


                • #9
                  Zitat von quhxl Beitrag anzeigen
                  Wenn, dann würde ich als absoluter Anfänger nicht so dumm fragen.
                  Du solltest Dich wirklich mit Grundlagen beschäftigen....

                  nimm folgenden code:

                  PHP-Code:
                  $myVar "Fleisch";
                  if (
                  $myVar == 'Fisch'){
                    echo 
                  "JA";
                  } else {
                    echo 
                  "NEIN";

                  Das ist genauso unsinnig, als hättest Du Fleisch in Deinen Kühlschrank gelegt und überprüfst ob Du Fisch reingelegt hast.

                  Kommentar


                  • #10
                    Habe es nochmal probiert und jetzt sagt er mir bei jedem, egal ob bei Rechte 1 oder 0 steht, "Ja".

                    PHP-Code:
                    <?php


                    include('phpSkripte/login.php');
                    $conn mysqli_connect("localhost""root""""einloggen");
                    $user_check $_SESSION['login_user'];
                    $ergebnis mysqli_query($conn"SELECT rechte from login where username = '$user_check'");
                    $row mysqli_fetch_assoc($ergebnis);
                    if (
                    $ergebnis->num_rows === 1) {
                      echo 
                    "JA";
                    }else {
                      echo 
                    "Nein";
                    }

                    ?>

                    Kommentar


                    • #11
                      Du fragst ja auch nur die Anzahl der Datensätze ab. Außerdem hast du eine fette Sicherheistlücke, wenn du den Benutzernamen in SQL-Code einfügst.

                      Wie wäre es, wenn du dich erstmal ein paar Tage mit den Grundlagen beschäftigst anstatt blind irgendwas herum zu probieren?

                      Kommentar


                      • #12
                        Ok, das wäre wohl die beste Lösung.

                        Kommentar

                        Lädt...
                        X