Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Gästebuch [selfmade] -> Smiley-Grafiken bleiben nicht

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Gästebuch [selfmade] -> Smiley-Grafiken bleiben nicht

    Hallo PHP-Forum-Leute

    ... hab mir ein Gästebuch mit PHP und MySQL gebastelt und nun bei der Smiley-Funktion komm ich nicht mehr weiter.

    Das Adden der Smiley-Codes (Javascript) in die textarea klappt, das Ersetzen von den Smileycodes (PHP: str_replace) funktioniert allerdings nur bedingt - direkt nach dem Erstellen des Posts kommt man zurück zur Gästebuchanzeige und dann sieht man die Smileys tatsächlich grafisch dargestellt. Wenn ich dann wieder das Gästebuch neu aufrufe (nicht Refresh oder neu laden) werden aber die Smileycodes (z.B. :whatever: ) angezeigt.

    Aber macht euch selbst ein Bild:
    www.gandharva-spirit.at/neu

    Ich blick nicht mehr durch. Zudem- wenn ich die Seite direkt aufrufe:
    http://www.gandharva-spirit.at/neu/gb/ladida.php (=gästebuch)
    ... dann sieht man smiley-grafiken (aber nicht alle ... )


    Hier noch (relevante) Code-Schnipsel:

    Code:
    for ( $i=1; $i <= $anzahl; $i++)
    {    
    while ($datensatz    =    mysql_fetch_array( $result ))
       {
    $datensatz["Text"] = htmlspecialchars($datensatz["Text"], ENT_QUOTES);
    $datensatz["Text"] = wordwrap($datensatz["Text"], 110, ' ', 1); 
    $datensatz["Text"] = nl2br($datensatz["Text"]);
    
    $search =     array(    ':-)',
                      // weitere smileys
                            ':shocked:');
                             
    $replace = array(    '<img src="../smileys/smile.gif" alt="smile" />',
                              // weitere smileys                           
                         '<img src="../smileys/shocked.gif" alt="schockiert" />');
                                  
    $datensatz["Text"] = str_replace($search, $replace, $datensatz['Text']);
    
    // mehr code (ausgabe der daten)
    
    <p><?php echo ($datensatz["Text"]); ?><br>
    
       }
    }
    Ich denke, das war's soweit ... wenn wer weiß wo der Fehler liegt wär ich sehr dankbar!!

    beste Grüße,
    Czily


  • #2
    PHP-Code:
    echo '<div>vorher:' htmlentities($datensatz["Text"]) . "</div>\n";
    echo 
    '<div>ersetze:' htmlentities(join(', '$search)) . "</div>\n";
    $datensatz["Text"] = str_replace($search$replace$datensatz['Text']); 
    Was gibt das Skript jetzt aus?

    Kommentar


    • #3
      Was das Skript letzten Endes bringt ist mir rätselhaft... die Join Funktion setzt einen Beistrich zwischen meine $search Array Einträge. Wozu?

      Aber ich denke, ich hab logischen Mist geschrieben. Zum einen verbiete ich HTML in Einträgen und zum anderen will ich HTML-Links zu den Smileygrafiken setzen ... dammit.


      - Czily -


      Ps: Wenn ich nicht überall mitkomme - liegt vielleicht daran, dass ich mich nun erst genau 1 Woche mit PHP beschäftige ... ^^ Sollte wahrscheinlich gesagt werden

      Kommentar


      • #4
        Ich wollte gerne die Ausgaben sehen. Manchmal/oft/meistens hilft es, sich den wirklichen Zustand an der vermeintlichen Fehlerquelle anzusehen.

        Kommentar


        • #5
          Zitat von Czily Beitrag anzeigen
          Aber ich denke, ich hab logischen Mist geschrieben. Zum einen verbiete ich HTML in Einträgen und zum anderen will ich HTML-Links zu den Smileygrafiken setzen ... dammit.
          An sich nicht. Jedenfalls im obigen Posting. Erst ersetzt Du alle html Entities, dann die -Codes. Stimmt doch.

          Sieh Dir einfach mal den Quelltest des erteugten html an. Mit großer Wahrscheinlichkeit siehst Du dann das Problem.
          Ich blick nicht mehr durch. Zudem- wenn ich die Seite direkt aufrufe:
          Gandharva Spirit (=gästebuch)
          ... dann sieht man smiley-grafiken (aber nicht alle ... )
          Also ich seh da 4 +1 +1 +1 Smileys. Beschreib nochmal genau,
          was Du eingibst
          was rauskommt
          was da stehen soll...

          Benutzt Du eine globale Funktion für die Ersetzung? Bzw. ein Setting
          PHP-Code:
           $search =     array(    ':-)',
                            
          // weitere smileys
                                  
          ':shocked:'); 
          für alle Ersetzunge gemeinsam? Vielleicht hast Du einfach nur ein paar Angaben vergessen, die dann nicht geparst werden...
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            OK OK OK ...
            ... ich hab gerade gesehen ich wurde Opfer meiner Dummheit.

            Das PHP-Skript passt, nur ich hab auf meiner Website den Button "Gästebuch" mit einer falschen Version der gästebuch.php verlinkt.

            Sorry, ... !

            Etwas Gutes hat die Sache doch: ich hab mich nun doch hier angemeldet ^^


            greetz und danke
            Czily

            Kommentar

            Lädt...
            X