[PHP] Verschiende Syntax

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Mirak, 12. April 2007 .

Schlagworte:
  1. 12. April 2007
    Verschiende Syntax

    Hey, ich habe nur eine kleine Frage Mein Script geht MITTLERWEILE :/

    Also ich habe bei meinem Gästebuch folgenden INSERT-Code:

    PHP:
      $sql  "INSERT INTO gb
               (name, wohnort, email, nachricht, datum, ip)
              VALUES
               ('"
    . $_POST [ 'name' ]. "',
               '"
    . $_POST [ 'wohnort' ]. "',
               '"
    . $_POST [ 'email' ]. "',
               '"
    . $_POST [ 'nachricht' ]. "',
               '
    $date ',
               '"
    . $_SERVER [ 'REMOTE_ADDR' ]. "')" ;
    So, klappt alles wunderbar. Die gleiche Art (nur andere Daten) habe ich im auch im Bereich Links, Playlist, Home und eig überall. Nur im Bereich "Downloads" geht der INSERT-Code nicht. Ich habe ewig umprobiert und habe dann mal

    PHP:
      $sql  "INSERT INTO `downloads`
    anstatt

    PHP:
      $sql  "INSERT INTO downloads
    ausrpbiert. Also nur die beiden `` sind neu und dann ging es komischerweise.

    Jetzt meine Frage: Warum geht es immer ohne und EINMAL brauche ich die beiden ``?

    Greetz
     
  2. 12. April 2007
    AW: Verschiende Syntax

    Der Thread hier mag dir wahrscheinlich shcon helfen ... ich persönlich habe die backticks nie gesetzt.

    SELFHTML Forumsarchiv / 2003 / Dezember / MySQL, PHP und die Backticks
     
  3. 12. April 2007
    AW: Verschiende Syntax

    Dazu ist mein php'isch wohl zu schlecht Versteh kein Wort auf dem selfHTML-Thread.

    Ich benutze eig auch so wenig wie möglich, aber irgendwie MUSS ich sie auf meiner HP unter "Downloads" machen... sonst nirgends.

    Danke für deinen Link, bw für dich
     
  4. 12. April 2007
    AW: Verschiende Syntax

    Sieht stark so aus als würdest du die Werte der Variablen völlig ungeprüft in die Datenbank schreiben. Da kann man leicht eine SQL-Injection durchführen. Schau dir mal folgenden Link an:
    PHP: String-Funktionen - Manual (scroll ein bisschen runter, da kommt das Inhaltsverzeichnis mit den Stringfunktionen und was sie bewirken)


    Und wenn du willst, dass die Zeilenumbrüche von der Textarea "nachricht" in der Datenbank auch erhalten bleiben solltest du das hier machen:
    PHP:
    $nachricht = nl2br ( $_POST [ 'nachricht' ]);  #alle \n werden mit <br /> ersetzt

    mfg,
    m00pd00p
     
  5. 12. April 2007
    AW: Verschiende Syntax

    danke, aber das habe ich

    Will nur wissen, warum ich einmal die Backticks brauche und ein anderes mal nicht

    btw: es reich, wenn man sie nur mit nl2br aussliest, man muss sie nicht auch damit in die DB schreiben.
     
  6. 12. April 2007
    AW: Verschiende Syntax

    Nabend, also in diesem Thread hab ich diesen Satz gelesen ...

    "Kann man - muß man aber nicht. (`) Dient nur dazu, reservierte Worte auch als Namen nutzen zu können, was in meinen Augen nicht sehr sinnvoll ist."

    Jo das mit den SQL Injections stimmt. Hatte es aber nicht extra betont. Hab hier auch bereits eine funktion die das effektiv verhindert gepostet, mal SuFu mit Typecasting und Formular.
    2. Muss man bei modernem Webdesign nl2br nichtmehr im Ansatz benutzen, denn der Zeilenumbruch erfolgt bei ordentlichem HTML (sowohl Eingabe als auch Ausgabe) mit CSS.
     
  7. 12. April 2007
    AW: Verschiende Syntax

    Ich hab jetzt mal ein bisschen gegoogled und das einzige was ich gefunden habe, warum die backticks genommen werden müssen (nur bei bestimmten Fällen) ist, wenn die ausdrücke schon reserviert sind in mysql (z.B. key). Lass dir doch mal denn mysql_error() ausgeben, wenn du die backticks wegnimmst.

    Edit: Sry, habe mir deinen Link nicht angeschaut :S, aber wörtlich ausgedrückt hast dus nicht wirklich...nur gesagt, dass du keine backticks benutzt

    mfg,
    m00pd00p
     
  8. 12. April 2007
    AW: Verschiende Syntax

    Da warst du leider deutlich zu langsam weil die erste Antwort zu diesem Thread, dieses bereits ausgedrückt hat und ich es nochmal wörtlich wiederholt habe ... aber da wir zwei jetzt schon der auffassung sind, sollte sich der verdacht doch erhärtet haben.
     
  9. 13. April 2007
    AW: Verschiende Syntax

    Schwachsinn.
    Werte sollte in der Datenbank ohne jegliche formatierung gespeichert werden, wozu der HTML-Code in dem DB-Eintrag ? Dies sollte man erst bei der ausgabe formatieren!
     
  10. 13. April 2007
    AW: Verschiende Syntax

    Ohne Backticks:

    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 'load (artist, track, laenge,groesse, dateiname, homepage, download' at line 1

    Mit Backticks geht alles.

    Also das mit dem reserviert hört sich ja sehr gut an. Das lasse ich mal als Antwort gelten

    Vielen Dank für eure Hilfe, bw für alle

    Off Topic: Also ich bin auch der Meinung, das ich das Zeug erst bei der Ausgabe formatieren sollte.

    Schönen Dag noch
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.