1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

' Problem

  • ::RMB::
  • 27. August 2006 um 23:07
  • ::RMB::
    Forum Guru
    Reaktionen
    1
    Beiträge
    4.139
    • 27. August 2006 um 23:07
    • #1

    Ich habe gerade gemerkt das wenn ich bei meinem GB und News Script ' eintippe bekomme ich einen Mysql Fehler.

    Beim Kontakt Script ist es nicht so.

    Hier mal den Code

    PHP
    <?php
    
    
    ......
    
    
    /* text bereinigung */
    $posttext = trim($_POST['posttext']);
    $posttext = str_replace("<","&lt;",$posttext);
    $posttext = str_replace(">","&gt;",$posttext);
    /* ende der text bereinigung */
    
    
    .....
    
    
    $insert = "INSERT INTO `rem_book` (  postid, posttext, posttime, authorname, authorwebsite, authoremail, authorip, stat )
    VALUES ( '$postid', '$posttext', '$posttime', '$authorname', '$authorwebsite', '$authoremail', '$authorip', '$stat' );";
    mysql_query( $insert)
    or die ("Fehler beim Eintragen des Beitrages!
    " .mysql_error() );
    
    
    ......
    
    
    ?>
    Alles anzeigen

    Wieso ist das so?

    Facebook Gruppe: Böses Encoding

  • FaFoo
    Großmeister(in)
    Reaktionen
    1
    Beiträge
    432
    • 27. August 2006 um 23:17
    • #2

    ich weiß nicht ob das ein Problem ist den Tabellennamen in Anführungszeichen zu schreiben aber Probiers mal so:

    Code
    $insert = "INSERT INTO rem_book


    anstatt so:

    Code
    $insert = "INSERT INTO `rem_book`
  • ::RMB::
    Forum Guru
    Reaktionen
    1
    Beiträge
    4.139
    • 27. August 2006 um 23:19
    • #3

    Nein das ist nicht das Problem.

    Ich habe ein wenig getestet.

    Wenn ich '''' probiere auszugeben kommt sowas \'\'\'\'\'\'\'\'\'
    Warum verstehe ich nicht.

    Facebook Gruppe: Böses Encoding

  • ::RMB::
    Forum Guru
    Reaktionen
    1
    Beiträge
    4.139
    • 27. August 2006 um 23:24
    • #4

    Es liegt beim trim() wenn ich es nicht trime und Filtere passiert es nicht.

    Irgendwie doch :ugly:

    Man ich brauch schlaf.
    Ich schaue morgen

    Facebook Gruppe: Böses Encoding

  • BendOr
    Kaiser(in)
    Beiträge
    2.496
    • 28. August 2006 um 11:37
    • #5

    du musst addslashes() auf die variablen anwenden, dann geht es, ích hatte das glieche problem und konnte es so geheben.... (erst vor ein paar tagen ;) )

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • ::RMB::
    Forum Guru
    Reaktionen
    1
    Beiträge
    4.139
    • 28. August 2006 um 11:56
    • #6

    Irgendwie nicht.

    wenn ich ' ausgeben will
    bekomm ich
    \\\' mit addslashes() und ohne \'

    aber ich will ja das wie hier im Forum ' kommt

    Facebook Gruppe: Böses Encoding

  • BendOr
    Kaiser(in)
    Beiträge
    2.496
    • 28. August 2006 um 12:06
    • #7

    komisch, dann mach hinterher stripslashes() damit machste die weg

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • ::RMB::
    Forum Guru
    Reaktionen
    1
    Beiträge
    4.139
    • 28. August 2006 um 12:58
    • #8

    Macht ja keinen Sinn
    dann ist es wie ohne addslahes und ohne stripslahes

    wie 10+1-1

    Facebook Gruppe: Böses Encoding

  • GreenRover
    Forum Guru
    Beiträge
    4.787
    • 28. August 2006 um 13:01
    • #9

    also durchs abschicken der Formulare wird das ganze einen magick quote unterzogen


    $posttext = str_replace("<","&lt;",$posttext);
    $posttext = str_replace(">","&gt;",$posttext);

    siehe da mal strip_tags()

    Da müsstest du nun mal in die DB gucken wie es dort ausschaut ...

    falls es da schon mit / vor drann steht, wurde es mittels // also 2 gespeichert...

    Das problem liegt daran, das auch sql einen quotung benötigt..
    Und diese wird durch die von dir verwendeten ' anstat " nicht aufgehoben durch den SQL server... also vorher richtig enquoten oder:

    $insert = 'INSERT INTO `rem_book` ( postid, posttext, posttime, authorname, authorwebsite, authoremail, authorip, stat )
    VALUES ( "'.$postid', "'.$posttext.'", "'.$posttime.'", "'.$authorname.'", "'.$authorwebsite.'", "'.$authoremail.'", "'.$authorip.'", "'.$stat.'");';

  • ::RMB::
    Forum Guru
    Reaktionen
    1
    Beiträge
    4.139
    • 28. August 2006 um 17:59
    • #10
    Zitat von GreenRover


    $insert = 'INSERT INTO `rem_book` ( postid, posttext, posttime, authorname, authorwebsite, authoremail, authorip, stat )
    VALUES ( "'.$postid.'", "'.$posttext.'", "'.$posttime.'", "'.$authorname.'", "'.$authorwebsite.'", "'.$authoremail.'", "'.$authorip.'", "'.$stat.'");';

    ". einmal vergessen :wink:

    Ja so geht's Danke

    Facebook Gruppe: Böses Encoding

Tags

  • forum
  • server
  • tex
  • time
  • text
  • news
  • post
  • kontakt
  • problem
  • code
  • fehler
  • tags
  • rip
  • error
  • script
  • mysql
  • variable
  • sql
  • formulare
  • book
  • insert
  • insert into
  • replace

Benutzer online in diesem Thema

  • 1 Besucher
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern