Smilie und BB-Code Script (PHP/JS)

  • So, noch ein PHP/JS Script von mir.
    UM dieses Script einzusetzen, müsst ihr in eure HTML einfach einen diesen Code einbinden(Die Textarea muss die id textbox haben):

    und hier gehe ich mal in der PHP davon aus, dass die Textarea den namen text hat.

    und das ganze kann dann optional auchnoch in eine Datei geschreiben werden. Hängt dazu einfach den folgenden Code an den oberen in der PHP an.

    PHP
    $fp=fopen("kommentare.html", "r+");
    fputs($fp, "<div class='kommentar'><a>".$comment."</a></div>\n");
    fclose($fp);

    Und natürlich kann man hier auchnoch den Charcounter einsetzen.
    Jedoch sollte in diesem fall auchnoch eine überprüfung der Länge des Textes erfolgen.
    das ganze, inclusive smilies, gibt es zum Runterladen :D.
    Mit eintrag in "comments.html":
    BBCode1.zip
    und ohne eintragen:
    BBCode2.zip
    Viel Spass!
    ICh bitte um Feedback!

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    3 Mal editiert, zuletzt von Tobse (30. August 2009 um 22:24)

  • Wofür stehen die <a> ?

    Code
    [COLOR=#000000][COLOR=#0000BB]str_replace[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"[CENTER'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"<center><a>"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$comment[/COLOR][COLOR=#007700]);
    [/COLOR][COLOR=#0000BB]str_replace[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"[/CENTER'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"</a></center>"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$comment[/COLOR][COLOR=#007700]);[/COLOR][/COLOR]
    Code
    [COLOR=#000000][COLOR=#0000BB]fputs[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"<div class='kommentar'><a>"[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]$comment[/COLOR][COLOR=#007700].[/COLOR][COLOR=#DD0000]"</a></div>\n"[/COLOR][COLOR=#007700]);[/COLOR][/COLOR]
  • Das funktioniert zu 100% nicht! Es wäre nicht schlecht, wenn man mal vorher testet, bevor man hier was reinschreibt.



    Ich schlage mal vor: http://www.christian-seiler.de/projekte/php/bbcode/

    Einmal editiert, zuletzt von bandit600 (30. August 2009 um 19:55)

  • Sicher. Deshalb hats bei mir Lokal auch geklappt...
    Und ich habe str_replace() auch in anderen PHP´s eingesetzt (den Smilie-Teil) und er hat funktioniert.
    und Donkey:
    Die <a>´s stehen da, weil der Nutzer wahrschieinlich kein HTML schriben wird und selbst wenn, wird es durch htmlentities() etfernt. Man könnte sie zwar weglassen, ürde keinen Unterschied machen, dann wäre aber der Text unter umständen nciht mer ansprechbar (CSS) und der Code wäre nicht Valide.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (30. August 2009 um 21:28)

  • Deshalb hats bei mir Lokal auch geklappt..


    Nie und nimmer!!!

    str_replace liefert den geänderten String, den du aber nicht entgegennimmst!

  • bitte, dann änder ichs eben. Wir brauchen hier ja jetzt auch keinen Streit um str_replace machen, mit md5() gehts aber auch.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • hehe, das klingt irgendwie so, als ob dein lokaler webspace Werte als Referenzen an die Funktionen übergibt. Das wäre allerdings kurios. An sich muss bandit Recht haben! Schau dir hierzu mal die Ausgabe von phpinfo() an.

    Und hast du schonmal probiert, einen BB-Code 2 Mal im String vorkommen zu lassen?
    Zudem ist es ja wohl ziemliche Verschwendung, für ein einzelnes Smilie den String durch 20 mal durch str_replace zu jagen ;)


  • Ich habe nicht gelesen, dass man str_rreplace() weitere austauschwerte geben kann.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Auweia!! Und wenn man noch mehrere Codes einbauen will, ist man dann irgendwann bei $comment99

    $text = str_replace("dies", "das", $text);

    Ansonsten empfehle ich dir, das Script (siehe Link) anzusehen und allen anderen empfehle ich, das Script von Tobse nicht zu nutzen.

  • Hm... Was was Du da verlinkt hast kommt mir ein bissl kompleziert vor für ein paar smilies, bandit.
    Nichts für ungut ;)

    Auf Selfhtml findet man auch ein Script zum einfügen von BBC in die Textarea.
    Wie das dann Ausgewertet wird bleibt jedem selbst überlassen.
    http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/

    Hier mal ne Testseite die ich damit gemacht hab.
    http://kendo-bunker.de/donkey/bbc/

    Die Smilies als BBC einfügen, Textformatierung als HTML.
    Da muss man das Form beim Absenden halt mit ner Whitelist überprüfen welcher HTML-Code eingegeben wurde.

    Das Ersetzen hab ich mal mit preg_replace gelösst.
    Nicht grad elegant und sieht ein bissl strange aus, aber auf die Schnelle is mir nichts Besseres eingefallen :D

  • Hm... Was was Du da verlinkt hast kommt mir ein bissl kompleziert vor für ein paar smilies, bandit.


    Der Parser kann etwas mehr als nur Smilies. ;)

  • Gut, gut. Wie ihr wollt dann habt ihr eben recht.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Tobse, es geht nicht darum was wir wollen. Wenn man hier ein Script reinstellt, dann sollte das halbwegs vernünftig programmiert und getestet worden sein. Ansonsten hilft das niemandem weiter, ganz im Gegenteil.

  • Habe ich mich nicht klar ausgedrückt? Bei mri Lokal hat es prima funktioniert, dann denke ich natürlich, dass das Script in Ordnung ist und auch bei anderen Leuten funktioniert. Es tut mir leid wenn es das nicht tut, das hätte ich ja auch nicht wissen können. In Zukunft werde ich das PHP dann noch auf bplaced und npage testen...

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!