Ankündigung

Einklappen
Keine Ankündigung bisher.

Finde meinen Fehler nicht

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Finde meinen Fehler nicht

    hi leute,

    iwie mach ich was falsch aber ich check meinen verdammten fehelr nicht ich kriege ya nur die fehler meldung dass der fehler inline 10 sein soll.

    PHP-Code:
    $sql ="UPDATE
              accounts
           SET
             Seite ='"
    .mysql_real_escape_string($_POST['site_edit'])."',
             Typ ='"
    .mysql_real_escape_string($_POST['typ_edit'])."',
             Bemerkungen ='"
    .mysql_real_escape_string($_POST['bem_edit'])."',
             Username ='"
    .mysql_real_escape_string($_POST['usrname_edit'])."',
             Passwort ='"
    .mysql_real_escape_string($_POST['passw_edit'])."',
             Datum = NOW()
           WHERE ID = 
    $ID "
    hier der fehler
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 10
    $ID = $_GET['id'] habe ich am anfang gesetzt also müsste alle sklappen die ID wird auch übergeben hab ich getestet :S

    MfG
    Amar

  • #2
    vielleicht besser so?
    PHP-Code:
    ...WHERE ID ".$ID

    Kommentar


    • #3
      Ich habe dein [ code ] mit [ php ] ersetzt, damit man ggf. Fehler im Code erkennen kann. Bitte denk da in Zukunft selbst dran.

      Dann fang mal an zu debuggen und lass $sql ausgeben. Mit an sicherheit grenzender Wahrscheinlichkeit ist $ID leer und enthält keine Zahl.
      [PHP]if ($var != 0) {
      $var = 0;
      }[/PHP]

      Kommentar


      • #4
        Mach doch mal "echo $sql;" und schau dir den fertigen Query an!

        Bei dir ist auch SQL Injection möglich, du hast zwar alle oberen Parameter mit mysql_real_escape_string() behandelt, $ID hast du aber vergessen, auch dort musst du aufpassen!

        Kommentar


        • #5
          habs jetzt so gemacht:

          PHP-Code:
          $sql ="UPDATE
                    accounts
                 SET
                   Seite ='"
          .mysql_real_escape_string($_POST['site_edit'])."',
                   Typ ='"
          .mysql_real_escape_string($_POST['typ_edit'])."',
                   Bemerkungen ='"
          .mysql_real_escape_string($_POST['bem_edit'])."',
                   Username ='"
          .mysql_real_escape_string($_POST['usrname_edit'])."',
                   Passwort ='"
          .mysql_real_escape_string($_POST['passw_edit'])."',
                   Datum = NOW()
                 WHERE ID ="
          .$_GET['id'].""
          geht auch nicht wieder der selbe fehler, aber eine ID habe ich ya sonst könnte ich nichtmal auf die seite gelangen, da eine ID übergeben werden MUSS über den Link.

          Kommentar


          • #6
            Ja und? Es kann trotzdem jemand in der URL einfach die ID entfernen oder sowas reinschreiben "33 OR 1=1" und dann sind ALLE Datensätze geupdated worden und nicht nur der eine! Also -> SQL Injection abfangen

            Kommentar


            • #7
              aber eine ID habe ich ya sonst könnte ich
              hast du das überprüft?
              Was sagt echo $sql?
              [PHP]if ($var != 0) {
              $var = 0;
              }[/PHP]

              Kommentar


              • #8
                hmmm da hast du recht, wie sollte ich das am besten machen? mysql_real_escape_string() bringt nicht viel denk ich :S

                Kommentar


                • #9
                  UPDATE accounts SET Seite ='', Typ ='', Bemerkungen ='', Username ='', Passwort ='', Datum = NOW() WHERE ID =


                  so wird mir das ausgegeben-.-

                  Kommentar


                  • #10
                    Also ist $ID leer ... dann musste wohl erstmal schauen warum es nicht gefüllt ist. Danach schauste wie du SQL Injection überprüfen kannst. Wenn es ne Zahl ist dann prüf ob es wirklich nen Integer ist oder caste den Wert in einen Integer.

                    Kommentar


                    • #11
                      Boah ich check einfach nicht woran das liegen kann ich habs ganz normal ausder url geholt die ID bei dem schritt zuvor. Doch wenn der Befehl ausgeführt werden soll verschwindet einfach die ID? LOL?

                      Kommentar


                      • #12
                        Wenn dein Url einen Teil ...id=345 hat, dann ist die 345 auch in $_GET['id'] drin. Wenn nicht, dann nicht.

                        Wenn dein URL ID = 345 beinhaltet, dann musst du das richtig schreiben. Dass id leer ist hab ich dir schon ganz oben gesagt.

                        Wenn du eine Zahl erwartest, dann kannst du den Query mit (int) vor SQL-Injektionen beschützen. Aber zunächst solltest du mal die Augen aufsperren und nachesehen, wie du id geschrieben hast. id != Id != ID != iD
                        [PHP]if ($var != 0) {
                        $var = 0;
                        }[/PHP]

                        Kommentar


                        • #13
                          $_GET Varibale leer

                          Hallo Leute,

                          hab mal wiede rne Frage und diesesmal komm ich wirklich nicht weiter-.-

                          Ich möchte gerne meine ID über den Link weitergeben. Aber iwie wird die ID nicht weitergegeben obwohl ich ganz normal per GET auslese.

                          Hier wird normal die ID aus der DB geholt undin den Link gepackt (editacounts.php):
                          PHP-Code:
                          while ($row mysql_fetch_assoc($result)) {
                          //Ausgabe der Accounts
                          echo"  <tr align='center'>";
                              echo
                          "<td>".$row['Seite']."</td>";
                              echo
                          "<td>".$row['Typ']."</td>";
                              echo
                          "<td>".$row['Username']."</td>";
                              echo
                          "<td>".$row['Passwort']."</td>";
                              echo
                          "<td>".$row['Datum']."</td>";
                              echo
                          "<td>".$row['Bemerkungen']."</td>";
                              echo
                          "<td><a href='index.php?section=admin&amp;do=editacc&ID=".$row['ID']."'><img src='admin/img/ico/page_edit.png' width='16' height='16' /></a></td>";
                              echo
                          "<td><a href='index.php?section=admin&amp;do=delacc&ID=".$row['ID']."'><img src='admin/img/ico/page_delete.png' width='16' height='16' /></a></td>";
                            echo
                          "</tr>";
                            }

                          Hier werden die Daten ausgelesen aus der DB über die ID, die zuvor aus der DB geholt wurde und in textboxen ausgegeben , klappt alles perfekt (acc_bearbeiten.php - Diese Datei wird in editacc.php includet, da ein PHP formular enthalten ist):
                          PHP-Code:
                          <?php 

                            
                          //Daten von Accounts aus DB holen
                            

                          $sql2 ="SELECT
                                      Seite,
                                      Typ,
                                      Username,
                                      Passwort,
                                      Datum,
                                      Bemerkungen
                                  FROM
                                      accounts
                                 WHERE
                                    ID="
                          .$_GET['ID']."";
                                    
                          $result2 mysql_query($sql2);            
                                    
                          if (!
                          $result2) {
                            DIE (
                          'Das Query konnte nicht ausgef&uuml;hrt werden, da folgender Fehler aufgetreten ist: '.mysql_error());
                            }
                            
                            
                          //Daten holen
                            
                          $row2 mysql_fetch_assoc($result2);
                           
                          ?>
                          und genau hier kommt dasProblem! in der editacc.php soll das ganze nun verarbeitet werden(editacc.php).

                          PHP-Code:
                          $sql "UPDATE
                                    accounts
                                 SET
                                   Seite ='"
                          .mysql_real_escape_string($_POST['site_edit'])."',
                                   Typ ='"
                          .mysql_real_escape_string($_POST['typ_edit'])."',
                                   Bemerkungen ='"
                          .mysql_real_escape_string($_POST['bem_edit'])."',
                                   Username ='"
                          .mysql_real_escape_string($_POST['usrname_edit'])."',
                                   Passwort ='"
                          .mysql_real_escape_string($_POST['passw_edit'])."',
                                   Datum = NOW()
                                 WHERE 
                                   ID ="
                          .$_GET['ID'].""
                          doch ich kriege den Fehler, dass ich was falsch gemacht habe in der letzten zeile des querys. Die ID wird ganz normal ausgelesen, doch schaue ich auf den Link, ist keine ID enthalten. Query wurde ausgegeben normal, doch icherhalte nichts-.- alles leer.

                          Wasmache ich falsch? :S

                          Kommentar


                          • #14
                            Themenmoderation:
                            [→] Verschoben von PHP-Fortgeschrittene
                            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                            Kommentar


                            • #15
                              $_GET vs. $_POST?
                              Viele Grüße,
                              Dr.E.

                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              1. Think about software design [B]before[/B] you start to write code!
                              2. Discuss and review it together with [B]experts[/B]!
                              3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                              4. Write [I][B]clean and reusable[/B][/I] software only!
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                              Kommentar

                              Lädt...
                              X