Ankündigung

Einklappen
Keine Ankündigung bisher.

Adminbereich

Einklappen

Neue Werbung 2019

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

  • Adminbereich

    Hi, ich bin eigentlich ein absoluter Newbie in dem Bereich PHP, aber versuche gerade trotzdem soviel zu realisieren wie nur geht.. das Script wird ohne hin erstmal nicht Online gehen, also interessiert es mich auch gerade nicht obs nun valide ist oder nicht.

    Ich habe im Navigationsscript eine Zeile hinzugefuegt, die aus einem Cookie heraus berechtigungen abfragt, weil mir dafuer ein mySQL Abruf zu bloed ist, wenn ich Ihn sowieso beim Aufruf einbaue.

    Nur gerade dass, scheitert irgendwie..
    Die nachvollgenden Befehle habe ich alle kennengelernt im laufe meiner Einarbeitung und in meinem Kopf muesste das ganze auch funktionieren:

    admin.inc:
    Code:
    <?php 
    if(isset($_GET['n']) AND ("useredit" == $_GET['n'])) { 
    echo "<form action=\"index.php?m=edit\" method=\"post\">";
    $sql = "SELECT                                                     
                        ID,
                        Name,
                        pwd,
                        flevel
                        FROM
                        mitglieder";
    $result = mysql_query($sql) OR die(mysql_error());
    while($row = mysql_fetch_assoc($result)) {
    
    if(isset($_COOKIE['name']) AND ($row['Name'] != $_COOKIE['name'])) echo "Der angegebene Benutzername exestiert nicht.";
    
    else if(isset($_COOKIE['pwd']) AND ($row['pwd'] != $_COOKIE['pwd'])) echo "Das angegebene Password stimmt leider nicht mit dem password fuer ".$_COOKIE['name']." ueberein.";
    
    else if ($row['flevel'] != "2") echo "Sie besitzen nicht die noetigen Rechte fuer diese Operation";
    
    else echo "<input type=\"checkbox\" value=\"".$row['ID']."\">".$row['Name'].";
    }
    } 
    ?>
    Wenn Getvar n enthaellt und n "useredit" ist, dann erstelle ein Forumlar, indem die Mitgliedernamen in einem Checkbox Design dargestellt werden, dessen Namen die Mitgliedsnamen sind und die Werte der eingetragenen ID's beinhalten und angezeigt soll das ganze werden, wenn die jeweiligen Cookie Eintraege mit einem aus der Datenbank eingetragenen Benutzer entspricht, zeige diese an ^^ so hab ich mir das vorgestellt.. Was mache ich falsch?

    Ich bekomme als Fehler Parse error: syntax error, unexpected $end in /test/admin.inc on line 20

    Waere sehr nett wenn da ma jemand drueber fliegen koennte


  • #2
    PHP-Code:
    else echo "<input type=\"checkbox\" value=\"".$row['ID']."\">".$row['Name']."; // ." am ende muss weg 
    MfG, dex

    Edit:

    Kommentar


    • #3
      PHP-Code:
      <?php 
      if(isset($_GET['n']) AND ("useredit" == $_GET['n'])) { 
      echo 
      "<form action=\"index.php?m=edit\" method=\"post\">";
      $sql "SELECT                                                     
                          ID,
                          Name,
                          pwd,
                          flevel
                          FROM
                          mitglieder"
      ;
      $result mysql_query($sql) OR die(mysql_error());
      while(
      $row mysql_fetch_assoc($result)) {

      if(isset(
      $_COOKIE['name']) AND ($row['Name'] != $_COOKIE['name'])) echo "Der angegebene Benutzername exestiert nicht.";

      else if(isset(
      $_COOKIE['pwd']) AND ($row['pwd'] != $_COOKIE['pwd'])) echo "Das angegebene Password stimmt leider nicht mit dem password fuer ".$_COOKIE['name']." ueberein.";

      else if (
      $row['flevel'] != "2") echo "Sie besitzen nicht die noetigen Rechte fuer diese Operation";

      else echo 
      "<input type=\"checkbox\" value=\"".$row['ID']."\">".$row['Name'].";
      }

      ?>

      Achte mal auf das Syntax-Highlighting am Ende...

      [edit]
      @dex: Blödmann

      Kommentar


      • #4
        Setz den Code mal in PHP- statt in Code-Tags, und du siehst den Fehler schon an den Farben.
        Gruss
        L

        Kommentar


        • #5
          Wenn du deinen Text gescheit einrücken würdest könnte man es besser erkennen

          PHP-Code:
          <?php
          <?php 
          if(isset($_GET['n']) AND ("useredit" == $_GET['n'])) { 
              echo 
          "<form action=\"index.php?m=edit\" method=\"post\">";
              
          $sql "SELECT                                                     
                              ID,
                              Name,
                              pwd,
                              flevel
                              FROM
                              mitglieder"
          ;
              
          $result mysql_query($sql) OR die(mysql_error());
              while(
          $row mysql_fetch_assoc($result)) {

                  if(isset(
          $_COOKIE['name']) AND ($row['Name'] != $_COOKIE['name'])) { 
                      echo 
          "Der angegebene Benutzername exestiert nicht.";
                  } else if(isset(
          $_COOKIE['pwd']) AND ($row['pwd'] != $_COOKIE['pwd'])) {
                      echo 
          "Das angegebene Password stimmt leider nicht mit dem password fuer ".$_COOKIE['name']." ueberein.";
                  } else if (
          $row['flevel'] != "2") {
                      echo 
          "Sie besitzen nicht die noetigen Rechte fuer diese Operation";
                  } else {
                      echo 
          "<input type=\"checkbox\" value=\"".$row['ID']."\">".$row['Name'].";
                  }
              }

          ?>
          Und siehe da, das Syntaxhighlighting zeigt seine Wirkung!
          Arbeitest du bei dir aufm PC ohne Syntaxhighlight? Das wäre schade

          Im übrigen kann man Cookies manipulieren. Du solltest also wichtige Abfragen (ob Admin ja/nein) nicht aus dem Cookie beziehen. Wenn dann aus der Session, denn diese Daten werden auf dem Server gespeichert.

          *edit* WOW da waren aber viele schneller

          Kommentar


          • #6
            ok sehr nice!
            sorry ^^ ich hab mir ja irgendwie gedacht, dass es was dummes sein muss.. Ich benutze leider den Editor von WinSCP ^^ da hab ich keine Farben!
            Aber vielen dank, fuer die Schnelle Hilfe

            edit: wie gesagt.. ich weiss das man das kann und es ist mir egal, weil der Cookie name und das password doch eh in der Datenbank ueberprueft wird..
            Das Cookie auslesen ob man admin ist, wird halt aus einer Zahl vollzogen, die fuer die Userlevel zustaendig sind..
            Hier in meinem Code ist es die "2" im normalfall ist es eine 5 Stellige andere Zahl, die nirgends in der MySQL vorhanden ist sondern im Script integriert und wenn man kein Admin ist, kann man sie auch ohne ausprobieren nicht wissen..
            Das muss sicher genug sein, weil es sich dabei ja nur um die Anzeige der Navigation handelt.
            Die Anzeige der aufgerufenen Seite dann, wird ja vorher abgefragt aus der MySQL Datenbank, wie im Script zu sehen

            Edit Edit: ich hab versucht das Script am Anfang mit sessions aufzubauen, dass hat nicht so geklappt wie ich mir das Vorgestellt habe, also gibs nun en Cookie.. ^^ Mittlerweile koennte es klappen wo ich weiss, das Session_Start() ganz am Anfang muss, aber das ist mir jetzt grad ma egal xD das Script ist nun was umfangreicher und auch abhaengig.. Is aber egal, ich hab noch ueberblick ^^

            Kommentar


            • #7
              Ähm ja dein Cookie wird aber nur 1 mal mit der Datenbank überprüft oder? Ich kann Cookies aber jederzeit ändern, auch nach dem Login und irgenwelchen anderen Aktionen.

              Kommentar


              • #8
                Kostenloser (und meiner Meinung nach bester) Editor:
                PSPad
                => Google PSPad

                Kommentar


                • #9
                  Cookie wird jedesmal abgefragt wenn man eine Seite aus der Navigation (die nur angezeigt wird, wenn im Cookie eine bestimmte 5 stellige Nummer eingetragen ist) auswaehlt, die Administrative Vorgaenge beinhalten.
                  In den dadurch aufgerufen Includes, befindet sich die erneute Abfrage aus der Datenbank.
                  Deshalb sagte ich auch, es ist scheiss egal, dass das Cookie veraendert werden kann.. Weil selbst wenn man das Feld Flags mit der richtigen 5 stelligen Nummer in dem Cookie faelscht. Wird zwar die Navigation fuer einen Admin eingeblendet, aber man hat dennoch keinen Zugriff.

                  PHP-Code:
                  <?php 
                  if(isset($_GET['n']) AND ("useredit" == $_GET['n'])) { 
                      echo 
                  "<form action=\"index.php?m=edit\" method=\"post\">";
                      
                  $sql "SELECT                                                     
                                      ID,
                                      Name,
                                      pwd,
                                      flevel
                                      FROM
                                      mitglieder"
                  ;
                      
                  $result mysql_query($sql) OR die(mysql_error());
                      while(
                  $row mysql_fetch_assoc($result)) {

                          if(isset(
                  $_COOKIE['name']) AND ($row['Name'] != $_COOKIE['name'])) { 
                              echo 
                  "Der angegebene Benutzername exestiert nicht.";
                          } else if(isset(
                  $_COOKIE['pwd']) AND ($row['pwd'] != $_COOKIE['pwd'])) {
                              echo 
                  "Das angegebene Password stimmt leider nicht mit dem password fuer ".$_COOKIE['name']." ueberein.";
                          } else if (
                  $row['flevel'] != "2") {
                              echo 
                  "Sie besitzen nicht die noetigen Rechte fuer diese Operation";
                          } else {
                              
                  $sql "SELECT                                                     
                                      ID,
                                      Name,
                                      pwd,
                                      flevel
                                      FROM
                                      mitglieder"
                  ;
                      
                  $result mysql_query($sql) OR die(mysql_error());
                      while(
                  $row mysql_fetch_assoc($result)) {
                  echo 
                  "<br><input type=\"checkbox\" value=\"".$row['ID']."\">".$row['Name'];
                               }
                          }
                      }

                  ?>
                  so siehts momentan aus und aehm ja.. funktioniert auch .. Zumindest soweit das mir eingeloggt alles angezeigt wird.

                  Kommentar


                  • #10
                    sorry fuer Doppelpost, aber ich habe mich scheinbar geirrt.. habe mal den Cookie geloescht.. bin also ausgeloggt, habe einfach index.php?n=useredit eingebenen und mir wird ebenfalls die Liste angezeigt.. Aber wieso? der duerfte doch an die Abfragen nicht vorbeikommen bis sie uebereinstimmen, ansonsten gibs Fehlermeldung?

                    Kommentar

                    Lädt...
                    X