Ankündigung

Einklappen
Keine Ankündigung bisher.

Update

Einklappen

Neue Werbung 2019

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

  • Update

    habe kleines Problem und komme irgendwie nicht wirklich mit der neuen php7 version zurecht.

    PHP-Code:
    $db mysqli_connect($host$user$pw$dbank);
    $id1 $_POST['id'];
    $name1 $_POST['name'];
    $beschreibung11 $_POST['beschreibung1'];
    $beschreibung21 $_POST['beschreibung2'];
    $bilddatei1 $_POST['bilddatei'];
    $bild $_POST['bild'];
    $sonderfeld1 $_POST['sonderfeld'];


    mysqli_query($db,'UPDATE bilderstart SET     name ='$name1',
                                                beschreibung1 ='
    $beschreibung11',
                                                beschreibung2 ='
    $beschreibung21',
                                                bilddatei1 ='
    $bild',
                                                sonderfeld ='
    $sonderfeld1'
                        WHERE   '
    $id1''); 
    Parse error: syntax error, unexpected '$name1' (T_VARIABLE), expecting ',' or ')'
    warum nimmt der keine Variablen an ???

  • #2
    Das hat nichts mit PHP7 zu tun, der Code ist kein valider PHP Code (Strings konkateniert man mit dem Punkt ".").
    Außerdem ist das Sciprt anfällig gegenüber SQL Injections sowie jeglichen Zeichen die irgendeine Bedeutung in SQL haben. Also wahrscheinlich wirst du weitere Probleme haben als diesen Syntax-Fehler...

    Kommentar


    • #3
      kannst du mir denn einen Tipp geben wie ich dort besser ran gehen sollte?

      Kommentar


      • #4
        Code:
                         ↱Beginn SQL                       ↱Ende SQL
        mysqli_query($db,'UPDATE bilderstart SET     name ='$name1',
        Alles nach Ende SQL wird nicht mehr genommen da dort der String endet.

        Kommentar


        • #5
          Zitat von protestix Beitrag anzeigen
          Code:
          ↱Beginn SQL ↱Ende SQL
          mysqli_query($db,'UPDATE bilderstart SET name ='$name1',
          Alles nach Ende SQL wird nicht mehr genommen da dort der String endet.
          Wenn innerhalb eines Strings wieder Anführungszeichen benutzt werden, dürfen das nicht die gleichen sein,

          die den kompletten String eingrenzen. Also entweder:

          'Hallo, mein Name ist "Hans"';

          Oder:

          "Hallo, mein Name ist 'Hans'";

          Außerdem fehlt in der where-Klausel das Vergleichskriterium " . . . WHERE '$id1''); "

          PHP-Code:
          $id1 23;
          $name1 'name';
          $beschreibung11 'beschreibung1';
          $beschreibung21 'beschreibung2';
          $bilddatei1 'bilddatei';
          $bild 'bild';
          $sonderfeld1 'sonderfeld';

          $query "UPDATE bilderstart SET name ='$name1',
                                                      beschreibung1 ='
          $beschreibung11',
                                                      beschreibung2 ='
          $beschreibung21',
                                                      bilddatei1 ='
          $bild',
                                                      sonderfeld ='
          $sonderfeld1'
                                       WHERE id = 
          $id1"
          Ausgabe: UPDATE bilderstart SET name = 'name', beschreibung1 = 'beschreibung1', beschreibung2 = 'beschreibung2', bilddatei1 = 'bild', sonderfeld = 'sonderfeld' WHERE id = 23

          Gruß
          Günni

          Kommentar


          • #6
            Hört mit dem Quatsch auf und nehmt Prepared Statements, egal ob mit MySQLi oder PDO, dann muss man sich um solchen Kram auch nicht kümmern. Um SQL zu lernen und zu testen sollte man sich mit dem escapen auseinandersetzen, Kontextwechsel zu beachten ist grundsätzlich eine wichtige Fähigkeit, aber das macht man doch nicht in der Applikation wenn einfache, schnelle, schlanke Bibliotheken zur Verfügung stehen (kann man als Übung auch mal selber schreiben). Das Beispiel hier implementiert ja nichtmal grundlegendsten Sicherheitsaspekte (ja auch SQL-Injection sollte man mal gelesen haben).
            [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

            Kommentar


            • #7
              Ersteinmal vielen Dank für Anregungen und Kommentare sowie für Hilfe.

              Keine Panik wegen injektion diese scripts sind nur für die Bearbeitung der DB und werden nicht auf dem server liegen.

              Chron: dein Kommentar ist bestimmt gut gemeint aber du hast bestimmt auch mal irgendwann angefangen. nicht jeder ist gleich ein Profi. Ich danke trotsdem für die Anregung.

              Kommentar

              Lädt...
              X