Nicht alle eingaben erlauben

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

  • Nicht alle eingaben erlauben

    Hallo,

    ich habe in Formular wo der User einen text in eine DB schreiben kann. (News eintrag in ienem Adminbereich).

    Ich möchte aber verbeiten das er Javascript mir einträgt oder sonstige tags. Er darf nur folgende HTML Befehle eintragen.

    <b>
    <u>
    <i>
    <br>

    Gibt es in PHP irgendeine Funktion wo ich das abfrgaen kann oder mit welchem Ansatz kann ich das Problem gehen?

    Danke und Grüße
    Jochen

  • #2
    BB-Code ^^v

    PHP-Code:
    strip_tags() 
    entfernt alles was nach HTML aussieht.

    und dann noch das allseits beliebte regex auch reguläre ausdrücke ...

    dum musst im grunde dafür sorgen das

    Code:
    1. [ b ] anstatt <b> 
    2. [ u ] anstatt <u>
    usw.
    geschrieben wird und auch nur dieses zulassen.

    wie du das genau anstellst ist im grunde dir überlassen

    am besten googlen ... oder Diese Seite Hier
    Komplett Durchlesen Kropff beschreibt dort einige dinge die du brauchen könntest.

    mfg wyveres
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      wandel zuerst die erlaubten html-tags mittels str_replace um, so wie mein vorgänger gesagt hat, dann strip_tags, und dann ggf. wieder mit str_replace die erlaubten tags wiederherstellen. ist so am einfachsten.

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

      Kommentar


      • #4
        Und wenn ihr mal im Manual nachlesen würde, würdet ihr entdecken, dass strip_tags auch eine Whitelist von erlaubten Tags entgegennimmt.

        (In wie weit ich mich darauf verlassen würde, ist eine andere Frage.)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ich danke, schau mich mal um und teste etwas. Ich wußte nicht von diesem Befehl.

          Wenn ich eien Lösung habe stell ichs ie hier rein.

          Kommentar


          • #6
            habe jetzt folgendes gemacht was auch super funktioniert.

            PHP-Code:
            $text strip_tags($text'<b><i><u><br>'); 
            die sache ist jetzt so macht er es ja einfach, wie kann ich überprüfen ob überhaupt html oder pHP Tags eingetragen wurde? Denn dann soll er einen Fehler mir ausspucken und das nicht in die DB schreiben.

            Danke schon mal.

            Grüße
            Jochen

            Kommentar


            • #7
              $vorher mit $nachher vergleichen?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                du willst wahrscheinlich nicht prüfen OB HTML eingegeben wurde, sondern OB HTML dur striptags entfernt wurde.

                if($text != strip_tags($text))
                ungültige html-tags wurden entfernt.

                Kommentar


                • #9
                  Original geschrieben von Jache84
                  habe jetzt folgendes gemacht was auch super funktioniert.

                  PHP-Code:
                  $text strip_tags($text'<b><i><u><br>'); 
                  die sache ist jetzt so macht er es ja einfach, wie kann ich überprüfen ob überhaupt html oder pHP Tags eingetragen wurde? Denn dann soll er einen Fehler mir ausspucken und das nicht in die DB schreiben.

                  Danke schon mal.

                  Grüße
                  Jochen
                  Wieso möchtest du denn Einträge, die HTML- oder PHP-Tags beinhalten, nicht eintragen, wenn du diese aus den Einträgen entfernen kannst?
                  Feststellen, ob HTML- oder PHP-Tags enthalten sind, kannst du wohl am besten mit den preg_-Funktionen (preg_match(), preg_match_all()) und den passenden Regulären Ausdrücken.
                  (Ich habe heute morgen meine Festplatte formatiert und meine Lesezeichen sind flöten gegangen, habe also leider gerade keine Links parat - tut mir leid.)
                  Nieder mit der Camel Case-Konvention

                  Kommentar


                  • #10
                    weil ich wenn ein User ein Eintrag macht in dem ein Tag vorkommt er darauf hingewiesen wird das ein unzulässiges Zeichen eingetragen wurde. und er dann wieder sienen zuvor geschrieben Text sieht und iesen ändern kann / muss.

                    Ist es sinnvoll das so zu machen das ich die anzahl der Zeichen zähle die der USer eingetragen habe. dann ein strip_tags und dann wieder die ZEichen zähle. Wenn die anzahl der Zeichen von strip_tags kleiner ist wurde was unzulässiges eingetragen, oder habe ich einen denkfehler?

                    Danke dir schon mal.

                    Grüße
                    Jochen

                    Kommentar


                    • #11
                      Ist es sinnvoll das so zu machen das ich die anzahl der Zeichen zähle die der USer eingetragen habe. dann ein strip_tags und dann wieder die ZEichen zähle. Wenn die anzahl der Zeichen von strip_tags kleiner ist wurde was unzulässiges eingetragen, oder habe ich einen denkfehler?
                      nee, ist okay so.

                      Kommentar


                      • #12
                        PHP-Code:
                        $autor=$_GET['autor'];
                        $original_laenge strlen($autor);
                        $strip strip_tags($autor'<b><i><u><br>');
                        $strip_laenge strlen($strip);
                        if (
                        $strip_laenge $original_laenge)
                        {
                          echo 
                        "Es wurden unzulässige Zeichen eingetragen";
                        }
                        else
                        {
                          
                        //DB insert.

                        So mache ich es jetzt und das funktioniert ohne Probleme. Danke an alle.

                        Grüße
                        Jochen

                        Kommentar

                        Lädt...
                        X