Ergebnis 1 bis 9 von 9

Thema: wie maskiert man HTML-Code für eine mySQL-Query?

  1. #1
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard wie maskiert man HTML-Code für eine mySQL-Query?

    Ich möchte über ein Formular HTML-Code eingeben lassen. Dieser soll in eine mySQL-DB per mysql_query() eingefügt werden.
    Der Text soll nach dem Absenden des Formulars in $newText zur Verfügung stehen. Der einfache Befehl
    Code:
    mysql_query("INSERT INTO `Content`='".$newText."' WHERE `id`='1');
    führt jedoch nicht zum Ziel. Hier beissen sich die sicher vorkommenden Quotes und DoubleQuotes mit der Stringeinfassung des mysql_query.

    Ich müsste meinen String in $newText also Maskieren und zwar so, dass der Text so in der DB steht, wie auch in der Datei selbst.
    Das klappt bei mir leider nicht. Hatte schon mit stripslashes, addslashes und htmlentities experimentiert, aber das will nicht funktionieren.
    Als Bsp.text habe ich verwended
    Code:
    <title>"'Hallo'"</title>
    Kann mir jemand auf die Sprünge helfen? Wie wird richtig maskiert?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    "Carpe Diem" powered by positiv Feelings

  2. #2
    Großmeister(in)
    Registriert seit
    06.07.2004
    Ort
    NRW
    Beiträge
    681
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Spontan tät ich sagen das dein Insert Query falsch ist.
    Und die Funktion addslashes() sollte schon die richtige sein.
    System.out.print("Java ist nicht JavaScript!");

  3. #3
    Großmeister(in)
    Registriert seit
    03.12.2004
    Ort
    Schweiz
    Beiträge
    514
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ich tät mal sagen, dass dein query grundsätzlich falsch ist....

    was ist "insert into content = newText where id = 1"?

    einen datensatz einfügen kann man meines wissends nach mit "INSERT INTO tabelle (feld1, feld2) VALUES (wert1, wert2)"

    vielleicht hilft dir es weiter?

  4. #4
    Kaiser(in)
    Registriert seit
    03.06.2004
    Beiträge
    2.557
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    außerdem solltest du beim eintragen deine sonderzeichen (< > " ') durch &xxx; ersetzen.

  5. #5
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ok, da sieht man's mal wieder. Zu schnelle Post's sind einfach fehleranfällig.

    Also ich meinte natürlich einen Update wie folgt:

    mysql_query("UPDATE `Content`SET `longtext`='".$newText."' WHERE `id`='"$id."'");

    Content ist der Tabellenname und ID der Datensatz der aktualisiert werden soll.
    "Carpe Diem" powered by positiv Feelings

  6. #6
    Großmeister(in)
    Registriert seit
    06.07.2004
    Ort
    NRW
    Beiträge
    681
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Versuch das mal:
    Code:
    "UPDATE Content SET longtext ='".$newText."' WHERE id='".$id."'"
    Und ist id wirklich kein Number Wert? Ansonsten ohne ' '.
    System.out.print("Java ist nicht JavaScript!");

  7. #7
    Kaiser(in)
    Registriert seit
    03.06.2004
    Beiträge
    2.557
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    UPDATE tabellenname WHERE id=$id (content) VALUES ('$content')

    ...ohne gewähr...

  8. #8
    Großmeister(in)
    Registriert seit
    06.07.2004
    Ort
    NRW
    Beiträge
    681
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von Rocco
    UPDATE tabellenname WHERE id=$id (content) VALUES ('$content')

    ...ohne gewähr...
    System.out.print("Java ist nicht JavaScript!");

  9. #9
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also
    Code:
    UPDATE tabellenname WHERE id=$id &#40;content&#41; VALUES &#40;'$content'&#41;
    Hat einen deutlichen Nachteil: Man muss immer genausoviele Werte wie Attribute in der Tabelle vorhanden sind angeben. Das ist nicht gut!

    @MrJava
    Code:
    "UPDATE Content SET longtext ='".$newText."' WHERE id='".$id."'"
    Ähmmm...wo ist denn da der Unterschied? Du hast ja nur die ``für Tabellenname etc. weggelassen. Das macht die Anweisung nur unsicherer. Ich hatte schon den Fall dass WHERE id='".$id."' falsch mit WHERE ID='".$id."' an mySQL übergeben wurde. Obwohl es keine Groß-/Kleinschreibung gibt, bekam ich die Fehlermeldung "unknown column...".
    Erst durch das Einfassen mit den ``klappte es wie gewünscht.

    Und auch wenn $id ein rein numerischer Wert ist, kann man ihn ungesehen in ' ' einfassen.

    Bedenkt auch, dass der Inhalt von $newText dem folgenden String entspricht:
    Code:
     <h3>" ' Hallo ' "</h3>
    Ok, thx 4 Awnser
    "Carpe Diem" powered by positiv Feelings

Ähnliche Themen

  1. Frage zu MySQL Query
    Von Teron Gerofied im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 21.03.2008, 17:01
  2. MySQL... 2 datenbanken, 1 query
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 17.07.2007, 21:24
  3. Mysql Query wird nicht ausgeführt??
    Von JDF1976 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 26
    Letzter Beitrag: 18.01.2007, 19:23
  4. Antworten: 14
    Letzter Beitrag: 07.10.2006, 14:14
  5. html code von überschrift als text in eine überschrift als
    Von anfängerein im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 26.11.2005, 23:43

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •