str_replace - Problem mit HTML-Code

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • str_replace - Problem mit HTML-Code

    Hallo,
    vielleicht kann mir hier jemand weiterhelfen. Ich habe mir eine Klasse erstellt die mir den SQL-Code für Insert-/Update-Anweisungen für MySQL erstellt. Jetzt wollte ich die Klasse um eine Funktion erweitern mit der ich einen über ein Textarea Feld den Code eines YouTube-Videos hinzufügen kann. Wenn ich allerdings die " durch ein \" ersetze ist $wert plötzlich leer? Hat jemand eine Idee?

    PHP Code:
    function addHtmlTextValue($spalte$wert){
                
    $wert str_replace('"''\"'$wert);    
                
    $this->addValue($spalte$wert);
            } 
    Der dazgehörige HTML-Code des Beispielvideos:

    HTML Code:
    <object width="640" height="385">
    <param name="movie" value="http://www.youtube.com/v/j6OixMG2vLA?fs=1&amp;hl=de_DE"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/v/j6OixMG2vLA?fs=1&amp;hl=de_DE" 
    type="application/x-shockwave-flash" allowscriptaccess="always" 
    allowfullscreen="true" width="640" height="385"></embed>
    </object>
    In der Variablen $wert steht der YouTube Code vor dem ersetzen definitiv drin
    Last edited by Martin204; 07-10-2010, 20:22.

  • #2
    Warum willst du " durch \" ersetzen?

    Comment


    • #3
      @Martin204
      Bitte brich erst mal deinen Code so um, dass man nicht kilometerweit nach rechts scrollen muss.

      Danke
      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Comment


      • #4
        @Kropff
        Ich hoffe jetzt ists besser mit der Lesbarkeit

        @h3ll
        ich muss " durch \" ersetzen da sonst die Datenbank mekkert

        Comment


        • #5
          Originally posted by Martin204 View Post
          ich muss " durch \" ersetzen da sonst die Datenbank mekkert
          Fürs Escaping gibt es fix fertige Funktionen, die es auch wirklich richtig machen (allein " durch \" ersetzen reicht bei Weitem nicht).

          PHP: mysql_real_escape_string - Manual

          Diese Funktion musst du bei jedem Wert anwenden, den du in einem Query einfügst, da sonst dein Script anfällig für die gefährlichen und häufig ausgenutzten SQL-Injections ist.

          Comment


          • #6
            Originally posted by Martin204 View Post
            ich muss " durch \" ersetzen da sonst die Datenbank mekkert
            Dann nutze die Funktion, die dafür vorgesehen ist - mysql_real_escape_string.
            Das ist echt ein schon zigtausendfach diskutiertes Thema ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Comment


            • #7
              Und was ist mit mysql_real_escape_string? Außerdem wäre die Einfügeoperation auch noch interessant. Mal daran gedacht, dort mit Hochkommata zu arbeiten? Nur so ein Beispiel:
              PHP Code:
              $str '<object width="640" height="385">...</object>';
              $query 'INSERT INTO bla (blubb) VALUES (\''.$str.'\')'
              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Comment


              • #8
                Danke für die schnelle Antwort, leider tritt das Problem auch mit
                PHP Code:
                $wert mysql_real_escape_string($wert); 
                auf, davor ist der Code enthalten, danach nicht mehr?

                Comment


                • #9
                  Dann machst du wohl noch irgendwas anderes falsch, was wir aus dem gezeigten Minimalcode aber nicht erkennen können.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Comment


                  • #10
                    Originally posted by Martin204 View Post
                    davor ist der Code enthalten, danach nicht mehr?
                    Dann zeig doch mal, wie du den Wert in die DB bekommst. Imho liegt da das Problem.

                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Comment


                    • #11
                      Endlich ich habe das Problem gefunden,
                      im Formular habe ich die Encrypt-Anweisung angepasst:

                      HTML Code:
                      <form enctype="application/x-www-form-urlencoded" id="Formular" action="gallerievideo_save.php" method="post" name="Formular">
                      Jetzt hats geklappt, MySQL mekkert nicht mehr und der Code wird gespeichert.

                      Vielen Dank für Eure schnelle Hilfe

                      Comment


                      • #12
                        hm - bei normalen Post daten brauchst du ja den enctype gar nicht angeben .. den passt man höchstens an, wenn man file-upload einbauen möchte
                        [font=Verdana]
                        Wer LESEN kann, ist klar im Vorteil!
                        [/font]

                        Comment


                        • #13
                          Ich hatte davor einen File-Upload für eine Video-Datei drin und hab diesen dann entfernt. Evtl. hing es damit zusammen. Nach 10 h Programmierung am Stück will ich aber auch nicht ausschliessen das ich sonst irgendeinen Blödsinn eingebaut und durch rumprobieren wieder entfernt habe.

                          Nochmals Danke für Eure Hilfe!

                          Comment

                          Working...
                          X