entwicklungshilfe

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

  • entwicklungshilfe

    will mal wieder n bissel euer wissen testen.

    also ich habe da eine recht umfangreiche page, auf der die user an allen möglichen stellen texte usw. eingeben können, welche inner sql db gespeichert werden.

    ich will nun folgendes:

    1. solche zeichen wie >,< ", ' usw. sollen umgewandelt werden, so dass kein HTML geschreiben werden kann, und die db beim speichern keine mucken macht!

    2. es wäre aber super, wenn die user VB verwenden könnten

    3. die umwandel geschichte soll als funktion nur einmal existieren, sodass ich sie per include überall einsetzen kann ... bin halt etwas tipp-faul

    ich will jetzt eure genialsten einfälle sehen

    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

  • #2
    hmm,

    1.
    verwende addslashes vor dem schreiben in die DB und stripslashes beim auslesen, das beruhigt schonmal die DB und bevor du was ausgibst tust du den string mit htmlentities um , dann kann dir nix passieren beim ausgeben. Sinnig ist auch mit nl2br die zeilenumbrüche in <br> um zu wandeln.

    2.
    was meinst du genau mit VB ? Visual Basic, einbauen ? *dummguck*

    3.
    Code:
     function wandelum($stringderkommt);
    {
       $stringrumwurschtel1 = stripslashes($stringderkommt);
       $stringrumwurschtel2 = htmlentities($stringrumwurschtel1);
       $stringdergeht = nl2br($stringrumwurschtel2);
       return $stringdergeht;
    }

    Kommentar


    • #3
      Original geschrieben von schmalle
      2. es wäre aber super, wenn die user VB verwenden könnten
      Können sie doch, es werden mit htmlentities() doch nur die Sonderzeichen umgwandelt... "VB" erscheint dann als "VB".

      SCNR.

      Also wenn ich richtig liege mit meiner Vermutung, meinst du entweder a) Visual Basic oder b) sowas wie 'nen Foren-Code, wo bestimmte "tags" durch richtige HTML-tags ersetzt weren... vielleicht meintest du ja sogar sowas wie VBulletin-Code, wenn es sowas überhaupt gibt.

      Naja, vielleicht klärst du uns über Punkt 2 noch etwas mehr auf, das kann ja dann noch etwas spannend werden, denn ansonsten sieht doch JoelHs Vorschlag recht gut aus... ok, man könnte alles noch in eine Zeile schreiben.

      Falls du aber Foren-Code haben willst, wünsche ich schon mal viel Spaß mit den ganzen RegExps.
      Hab so was mal als class realisiert, war nicht wirklich trivial.

      Kommentar


      • #4
        Original geschrieben von smeagol
        Falls du aber Foren-Code haben willst, wünsche ich schon mal viel Spaß mit den ganzen RegExps.
        Hab so was mal als class realisiert, war nicht wirklich trivial. [/B]
        genau das will ich! wie?
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          Was willste denn genau?

          Fett mit (b) und (/b)?

          $text = preg_replace("/\(b\)(.*)\(\/b\)/i","<B>$1</B>",$text);

          Hm.. Könnte gut sein, dass mir bei dem Slash-Wald jetzt ein Fehler unterlaufen ist *g*

          CAT Music Files

          Kommentar


          • #6
            hmm,

            bold realisiere ich so :
            Code:
            $hack = "|(\[b\])(.*?)(\[/b\])|s";
                           $code = "<b class='bred'>\\2</b>";
                           $text = preg_replace($hack,$code,$text);
            wichtig ist das s in $hack, sonst nimmt er es nicht wenn Zeilenumbrüche drin sind.

            Kommentar


            • #7
              warum die | ?

              CAT Music Files

              Kommentar


              • #8
                ich werd´s spontan mal mit joelh´s version versuchen. der wald ist mir zu wirr ... da blickt doch keine sau durch
                h.a.n.d.
                Schmalle

                http://impressed.by
                http://blog.schmalenberger.it



                Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                ... nur ohne :-)

                Kommentar


                • #9
                  hmm,

                  @sky
                  für was ist dein führendes / und das am ende ? Siehste

                  @schmalle
                  hier meine Ausdrücke für das JBB Board. Da blickt dann langsam keiner mehr durch, wobei ich finde reg. Ausdrücke sind eine Wissenschaft für sich, kennt einer das Buch Reguläre Ausdrücke in Perl von O'Reilly ? Das ist krass, kann ich /()(/\ Fetischisten nur wärmstens empfehlen.

                  Code:
                  function checkJBBTag($text, $user, $userClass, $configdaten)
                    {
                       // JBB Code Konfiguration auslesen
                          if($configdaten["generalCode"] != "on")
                                 {
                                   return $text;
                                 }
                  
                          if ($configdaten["listTag"] == "on")
                             {
                               $hack = "|(\[list\])(.*?)(\[/list\])|s";
                               $code = "<!-- JBB List Code --><ul>\\2</ul><!-- JBB List Code -->";
                               $text = preg_replace($hack,$code,$text);
                               $hack = "|(\[\*])(.*?)(\[/\*])|s";
                               $code = "<!-- JBB List Code --><li>\\2<!-- JBB List Code -->";
                               $text = preg_replace($hack,$code,$text);
                             }
                  
                          if($configdaten["codeTag"] == "on")
                            {
                               $hack = "|(\[code\])(.*?)(\[/code\])|s";
                               $code = "\n<br><!--zitat-->\n<table border='0' cellpadding='0' cellspacing='0'>\n".
                                                          "<tr><td colspan='2'><img src='bilder/klara.gif' width='400' height='1'></td></tr>".
                                                          "<tr>\n\t<td><img src='bilder/klara.gif' width='10' height='1'></td><td><img src='bilder/klara.gif' width='400' height='1'></td>\n</tr>\n".
                                                          "<tr>\n\t<td colspan='2'><b class='zitattitle'>CODE:</b></td>\n</tr>\n".
                                                          "<tr><td colspan='2' background='bilder/strichel.gif'><img src='bilder/klara.gif' width='1' height='1'></td></tr>".
                                                          "<tr valign='top'>\n".
                                                                  "\t<td><img src='bilder/klara.gif' width='1' height='1'></td>".
                                                                  "\t<td >".
                                                                  "<b class='code'>\\2</b></td>\n</tr>\n".
                                                                  "<tr><td colspan='2'><img src='bilder/klara.gif' width='1' height='10'></td></tr>".
                                                                  "<tr><td colspan='2' background='bilder/strichel.gif'><img src='bilder/klara.gif' width='1' height='1'></td></tr>".
                                                                  "</table>\n<!--endZitat-->\n";
                               $text = preg_replace($hack,$code,$text);
                            }
                  
                          if($configdaten["quoteTag"] == "on")
                            {
                                 $hack = "|(\[quote\])(.*?)(\[/quote\])|s";
                                 $code = "\n<br><!--zitat-->\n<table border='0' cellpadding='0' cellspacing='0'>\n".
                                                          "<tr><td colspan='2'><img src='bilder/klara.gif' width='400' height='1'></td></tr>".
                                                          "<tr>\n\t<td><img src='bilder/klara.gif' width='10' height='1'></td><td><img src='bilder/klara.gif' width='400' height='1'></td>\n</tr>\n".
                                                          "<tr>\n\t<td colspan='2'><b class='zitattitle'>Zitat:</b></td>\n</tr>\n".
                                                          "<tr>\n\t<td colspan='2' background='bilder/strichel.gif'><img src='bilder/klara.gif' width='1' height='1'></td>\n</tr>\n".
                                                          "<tr valign='top'>\n".
                                                                  "\t<td><img src='bilder/klara.gif' width='1' height='1'></td>\n".
                                                                  "\t<td class=\"zitat\">\\2</td>\n</tr>\n".
                                                                  "<tr><td colspan='2'><img src='bilder/klara.gif' width='1' height='10'></td></tr>".
                                                                  "<tr><td colspan='2' background='bilder/strichel.gif'><img src='bilder/klara.gif' width='1' height='1'></td></tr>".
                                                                  "</table>\n<!--endZitat-->\n";
                                 $text = preg_replace($hack,$code,$text);
                            }
                  Teil 1

                  Kommentar


                  • #10
                    tel 2

                    Code:
                    
                            if ($configdaten["boldTag"] == "on")
                    
                    
                              {
                    
                    
                                   $hack = "|(\[b\])(.*?)(\[/b\])|s";
                    
                    
                                   $code = "<b class='bred'>\\2</b>";
                    
                    
                                   $text = preg_replace($hack,$code,$text);
                    
                    
                              }
                    
                    
                    
                    
                    
                            if($configdaten["italicTag"] == "on") {
                    
                    
                            $hack = "|(\[i\])(.*?)(\[/i\])|s";
                    
                    
                            $code = "<i>\\2</i>";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            }
                    
                    
                    
                    
                    
                            if($configdaten["editTag"]== "on") {
                    
                    
                            $hack = "|(\[edit\])(.*?)(\[/edit\])|s";
                    
                    
                            $code = "\n<br>\n<table border='0' cellpadding='0' cellspacing='0'>\n".
                    
                    
                                                            "<tr>\n\t<td><img alt=\"\" src='bilder/klara.gif' width='13' height='10'></td>\n\t<td><img src='bilder/klara.gif' width='400' height='10'></td>\n</tr>".
                    
                    
                                                            "\n<tr valign=\"top\">\n\t<td class='editedText' rowspan=\"2\">". /*<img src=\"bilder/edited.gif\" width=8 height=19 alt=\"LALALA\" border=\"0\">*/
                    
                    
                                                            "</td></tr>".
                    
                    
                                                            "\n<tr>\n\t<td class=\"editedText\">".
                    
                    
                                                            "\\2</td>\n</tr>".
                    
                    
                                                                    "\n</table>\n\n";
                    
                    
                    
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                    
                    
                    
                            $hack = "|(\[stillEdit\])(.*?)(\[/stillEdit\])|s";
                    
                    
                            $code = "<!-- edit -->\\2<!-- edit -->";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                    
                    
                    
                            $hack = "|(\[user\])(.*?)(\[/user\])|s";
                    
                    
                            $code = "<b class=\"user\" style=\"font-size: 10px; font-style:normal;\"> \\2</b><br>";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            }
                    
                    
                    
                    
                    
                            if($configdaten["imgTag"]== "on") {
                    
                    
                            $hack = "|(\[img\])(.*?)(\[/img\])|";
                    
                    
                            $code = "<img src=\"\\2\" border=\"0\"><br>";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            $hack = "|(\[bild\])(.*?)(\[/bild\])|";
                    
                    
                            $code = "<img src=\"\\2\" border=\"0\"><br>";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            }
                    
                    
                    
                    
                    
                            if($configdaten["autolink"] == "on") {
                    
                    
                            $hack = '§(?<!(\]|=|"|>))(http://)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)§';
                    
                    
                            $code = "<!-- JBB URL Auto-Linker --><a target=\"_blank\" class=\"red\" href=\"http://\\3\">\\3</a> <!-- JBB URL Auto-Linker -->";
                    
                    
                    //	        $text = preg_replace($hack,$code,$text);
                    
                    
                            $hack = '§(?<!(/|\]|>|=|"))(www.)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)§';
                    
                    
                            $code = "<!-- JBB URL Auto-Linker --><a target=\"_blank\" class=\"red\" href=\"http://www.\\3\">www.\\3</a> <!-- JBB URL Auto-Linker -->";
                    
                    
                    //        $text = preg_replace($hack,$code,$text);
                    
                    
                            }
                    
                    
                    
                    
                    
                            if($configdaten["urlTag"] == "on") {
                    
                    
                            $hack = "|(\[url\])(http://)([;_=\-\#\?\/\&a-zA-Z0-9\.]*)(\[/url\])|";
                    
                    
                            $code = "<!-- JBB URL Code --><a target=\"_blank\" class=\"red\" href=\"http://\\3\">\\3</a><!-- JBB URL Code -->";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            $hack = "|(\[url\])([;=\-\#\?\/\&_a-zA-Z0-9\.]*)(\[/url\])|";
                    
                    
                            $code = "<!-- JBB URL Code --><a target=\"_blank\" class=\"red\" href=\"http://\\2\">\\2</a><!-- JBB URL Code -->";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            $hack = "|(\[url=http://)([;=\-\#\?\/\&_a-zA-Z0-9\.]*)(\])(.*)(\[/url\])|";
                    
                    
                            $code = "[url=\\2]\\4[/url]";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            $hack = "|(\[url=)([;=\-\#\?\/\&_a-zA-Z0-9\.]*)(\])(.*)(\[/url\])|";
                    
                    
                            $code = "<!-- JBB URL Code --><a target=\"_blank\" class=\"red\" href=\"http://\\2\">\\4</a><!-- JBB URL Code -->";
                    
                    
                            $text = preg_replace($hack,$code,$text);
                    
                    
                            }

                    Kommentar


                    • #11
                      Re: hmm,

                      |(\[b\])(.*?)(\[/b\])|s

                      Ich nehme mal an, dass das bei dir funktioniert - Es sieht aber trotzdem ein wenig seltsam aus...
                      Also der | am Anfang ist mir völlig unverständlich, der Rest sagt mir:
                      ein '[b ]', dann etwas beliebiges mit beliebiger Länge dazwischen, dann noch etwas beliebiges mit 0 oder 1 Zeichen Länge (warum? das ist doch im .* mit eingeschlossen) und schließlich ein '[/b ]' oder anstelle von dem ganzen ein simples 's' - dazu ist das ganze noch case-sensitive.

                      Aber da es ja wohl bei dir geht, scheint bei mir ne Wissenslücke zu sein - Ist das eine PHP preg_replace() Eigenheit?

                      anmerkung: die leerzeichen bei [b ] und [/b ] sind natürlich nur wegen dem Forumcode hier...

                      CAT Music Files

                      Kommentar


                      • #12
                        teil 3

                        Code:
                               if($configdaten["emailTag"] == "on") {
                                $hack = "|(\[email\])(.*)(@)(.*)(\[/email\])|";
                                $code = "<!-- JBB eMail --><a class=\"red\" href=\"mailto:\\2\\3\\4\">\\2\\3\\4</a><!-- JBB eMail -->";
                                $text = preg_replace($hack,$code,$text);
                                $hack = "|(\[email=)(.*)(@)(.*)(\])(.*)(\[/email\])|";
                                $code = "<!-- JBB eMail --><a class=\"red\" href=\"mailto:\\2\\3\\4\">\\6</a><!-- JBB eMail -->";
                                $text = preg_replace($hack,$code,$text);
                                }

                        Kommentar


                        • #13
                          teil 4

                          Code:
                                  if($configdaten["pollTag"] == "on") {
                                  $hack = "|(\[poll\])(2)(%%)(.*)(%%)(.*)(%%)(.*)(%%)(.*)(%%)(\[/poll\])|";
                                  $code = "<!-- JBB Poll --><form action=\"showpoll.php\" method=\"post\" target=\"Showpoll\" onSubmit=\"window.open('', 'Showpoll','height=350,width=400,toolbar=no');\">";
                                  $code .= "<table cols=2 border=1><input type=\"hidden\" name=\"tid\" value=\"\\4\">";
                                  $code .= "<input type=\"hidden\" name=\"anzahl\" value=\"2\">";
                                  $code .= "<input type=\"hidden\" name=\"frage\" value=\"\\6\">";
                                  $code .= "<input type=\"hidden\" name=\"antwort1\" value=\"\\8\">";
                                  $code .= "<input type=\"hidden\" name=\"antwort2\" value=\"\\10\">";
                                  $code .= "<tr><td colspan=2><b class='code'>\\6</b></td></tr>";
                                  $code .= "<tr><td align=\"left\"><input type=\"radio\" name=\"antwort\" value=\"1\">";
                                  $code .= "</td><td align=\"left\"><b class='code'>\\8</b></td></tr>";
                                  $code .= "<tr><td align=\"left\"><input type=\"radio\" name=\"antwort\" value=\"2\">";
                                  $code .= "</td><td align=\"left\"><b class='code'>\\10</b></td></tr>";
                                  $code .= "<tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"Abstimmen\"></td></tr>";
                                  $code .= "<tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"Ansehen\"></td></tr>";
                                  $code .= "</table></form>";
                                  $code .= "<!-- JBB Poll -->";
                                  $text = preg_replace($hack,$code,$text);
                          
                                  }
                                  //echo "<input type=\"text\" value=\"$hacks\">";
                                  // $text = preg_replace($hack,$code,$text);
                                  return $text;
                          }

                          Kommentar


                          • #14
                            @sky
                            für was ist dein führendes / und das am ende ? Siehste


                            Naja, das markiert Anfang und Ende der eigentlichen Expression nach POSIX.

                            CAT Music Files

                            Kommentar


                            • #15
                              hmm,

                              joo,
                              und da in meinen Ausdrucken / vorkommen nehme ich einfach ein anderes Zeichen um den Ausdruck abzu schliesen.

                              Und wie ich schon gesagt habe, hauptsache die Dinger funktionieren, wie das ist eigentlich irrelevant. Naja und das mit dem Case Sensity ist halt so. Wir sind hier nicht bei Windows

                              Kommentar

                              Lädt...
                              X