Svendsen Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 Kanskje litt lang tittel men Det jeg lurer på er hvordan sikrer man seg best mot at en leser kan legge inn uønsket html i en kommentar til et blogg innlegg. er strip_tags tingen? Har noen et eksempel, gjerne forklare det til meg også. Helt greit å komme med ferdig forslag, men gjerne med forklaring Så lærer jeg noe Lenke til kommentar
Svendsen Skrevet 17. februar 2006 Forfatter Del Skrevet 17. februar 2006 Ok fant akkurat ut at det ikke var det jeg var ute etter. Jeg vil ta bort uønsket html før jeg legger inn i db. Lenke til kommentar
Gjest Slettet+6132 Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 Kanskje litt lang tittel men Det jeg lurer på er hvordan sikrer man seg best mot at en leser kan legge inn uønsket html i en kommentar til et blogg innlegg. er strip_tags tingen? Har noen et eksempel, gjerne forklare det til meg også. Helt greit å komme med ferdig forslag, men gjerne med forklaring Så lærer jeg noe 5621780[/snapback] Du bytter bare ut < og >. <? $msg = str_replace("<", "<", $msg); $msg = str_replace(">", ">", $msg); ?> Lenke til kommentar
Svendsen Skrevet 17. februar 2006 Forfatter Del Skrevet 17. februar 2006 Så det er ikke mulig å fjerne noe, men godta noe? feks., vil jeg jo ønske at de kan legge inn <i> og <strong> men kanskje ikke <a> Lenke til kommentar
Gjest Slettet+6132 Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 Så det er ikke mulig å fjerne noe, men godta noe? feks., vil jeg jo ønske at de kan legge inn <i> og <strong> men kanskje ikke <a> 5621919[/snapback] Da kan du benytte deg av såkalt bbcode, slik som forumet har. Du bytter da ut med <b> osv Lenke til kommentar
NH Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 (endret) du vil ikke at de skal legge inn noe som helst. det er derfor man bruker BBkoder, som her i forumet etc (disse må lages selv ja) ta en titt på: htmlspecialchars() og htmlentities() eneste forskjellen blant disse er at den også kan konvertere æ, ø, å, | etc til tilhørende html tegn (f.eks < ø etc) Endret 17. februar 2006 av NH Lenke til kommentar
Magnus Holm Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 function bbcode($string) { $string = preg_replace("#[b](.*?)[/b]#mi", "<strong>$1</strong>", $string); $string = preg_replace("#[i](.*?)[/i]#mi", "<em>$1</em>", $string); $string = preg_replace("#[u](.*?)[/u]#mi", "<span class="underline">$1</span>", $string); return $string; } Bare kjør en strip_tags FØR denne funksjonen så har du det i boks Men husk å lage klassen "underline" i CSS-dokumentet ditt Lenke til kommentar
Svendsen Skrevet 17. februar 2006 Forfatter Del Skrevet 17. februar 2006 (endret) function bbcode($string) { $string = preg_replace("#[b](.*?)[/b]#mi", "<strong>$1</strong>", $string); $string = preg_replace("#[i](.*?)[/i]#mi", "<em>$1</em>", $string); $string = preg_replace("#[u](.*?)[/u]#mi", "<span class="underline">$1</span>", $string); return $string; } Bare kjør en strip_tags FØR denne funksjonen så har du det i boks Men husk å lage klassen "underline" i CSS-dokumentet ditt 5622106[/snapback] Og der fikk jeg plutselig forklart veldig godt BBkode i teori men lyst til å forklarer f.eks $string = preg_replace("#(.*?)#mi", "<strong>$1</strong>", $string); for meg? litt mer i detaljer så jeg forstår bedre alt den gjør? Hadde gjort meg glad, pleier å mase til jeg forstår det. hehe Altså oppbygningen, som: #, skjønner jo at er det man skriver inn, og forstår at (.*?) og $1 har en relasjon OT lukter deilig pizza fra kjøknet som dama lager /OT EDIT: men jeg må jo sikre at ikke annen html blir kjørt! EDIT2: fiksa edit over med å bruke strip_tags() riktig Endret 17. februar 2006 av Svendsen Lenke til kommentar
endrebjo Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 htmlentities() gjør < og > om til < og > Lenke til kommentar
Magnus Holm Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 Svendsen: Kan forklare senere, nå må jeg stikke. Sikkert noen andre som greier det også Lenke til kommentar
Zic0 Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 (endret) Burde vel heller være sånn her: function bbcode($string) { $string = preg_replace("#\[b\](.*?)\[/b\]#mi", "<strong>$1</strong>", $string); $string = preg_replace("#\[i\](.*?)\[/i\]#mi", "<em>$1</em>", $string); $string = preg_replace("#\[u\](.*?)\[/u\]#mi", "<span class="underline">$1</span>", $string); return $string; } Endret 17. februar 2006 av Zic0 Lenke til kommentar
Svendsen Skrevet 18. februar 2006 Forfatter Del Skrevet 18. februar 2006 Burde vel heller være sånn her: function bbcode($string) { $string = preg_replace("#\[b\](.*?)\[/b\]#mi", "<strong>$1</strong>", $string); $string = preg_replace("#\[i\](.*?)\[/i\]#mi", "<em>$1</em>", $string); $string = preg_replace("#\[u\](.*?)\[/u\]#mi", "<span class="underline">$1</span>", $string); return $string; } 5623570[/snapback] Hvorfor? Spør fordi jeg ikke veit forskjellen på noen av de Lenke til kommentar
Zic0 Skrevet 18. februar 2006 Del Skrevet 18. februar 2006 http://www.php.net/preg_replace http://no.php.net/pcre http://www.google.no/search?hl=no&q=Regula...pressions&meta= Der har du alt du trenger å vite. Lenke til kommentar
jorgis Skrevet 18. februar 2006 Del Skrevet 18. februar 2006 Så det er ikke mulig å fjerne noe, men godta noe? feks., vil jeg jo ønske at de kan legge inn <i> og <strong> men kanskje ikke <a> 5621919[/snapback] strip_tags() har en andre parameter, som lar deg spesifisere hvilke tags som skal være tillatt. Liten vits å pese med BBCode om du uansett ønsker å bruke plain HTML i kommentarer. Lenke til kommentar
MC2 Skrevet 18. februar 2006 Del Skrevet 18. februar 2006 (endret) det finnes en mye enklere måte å løse dette på: striptags.php <?php $text = '<p>Test paragraph.</p><!-- Comment --> Other text'; echo strip_tags($text); echo "\n"; // Allow <p> echo strip_tags($text, '<p>'); ?> og blir sånn: Test paragraph. Other text<p>Test paragraph.</p> Other text EDIT:wow... postet på samme minutt som Jorgis... Endret 18. februar 2006 av MC2 Lenke til kommentar
Svendsen Skrevet 18. februar 2006 Forfatter Del Skrevet 18. februar 2006 Jorgis og MC2: ER klar over det, når jeg endelig klarte å beherske strip_tags(). Ikke altid influensa og programmering går sammen, men noen ganger er det deilig å koble av Ønkser å bruke BBkoder også, er så mange som har blitt vandt med det, og ikke ser likheten med html. Dessuten ser det jo litt bra ut da Så ønsker fortsatt en forklaring men skal og sjekke de linkene som var nevnt der oppe Tusen takk folkens Lenke til kommentar
NH Skrevet 18. februar 2006 Del Skrevet 18. februar 2006 kan ta en titt på DENNE koden. den burde ta seg av all bbkode bekymringen. bruk htmlentities() eller htmlspecialchars() om du vil vise < og > og andre ulovlige tegn, men ikke la dem kjøres istedenfor å fjærne dem, hva om du vil gi et htmleksempel? Her er det selvfølgelig rom for å legge til en tag osv.. bare å legge til i både $patterns og $replacements det Lenke til kommentar
Zic0 Skrevet 18. februar 2006 Del Skrevet 18. februar 2006 (endret) HVorfor har ud to "\\"? "\" er for å escape "[", når du bruker \\, blir det heller "\[". Og det vil si at den leter etter for eksempel \[b\]Hei\[/b\] istedet for [B]Hei[/B] Endret 18. februar 2006 av Zic0 Lenke til kommentar
NH Skrevet 18. februar 2006 Del Skrevet 18. februar 2006 (endret) Nei Zic0, test heller funksjonen før du sier noe.. på grunn av at dette er laget i et array med " " runt, så kun en \ vil escape [ ut av lagringen til array, mens \\ sier escaper føsrt \ fra array statementen så neste \ kan escape [ "quote_parm" => "#\\ (.*?)\\[/quote\\]#si", her brukes \ til escaping av " inne i regexen, mens \\ brukes som en del av regexen da første \ blir ignorert grunnet bruken av array() Endret 18. februar 2006 av NH Lenke til kommentar
Zic0 Skrevet 18. februar 2006 Del Skrevet 18. februar 2006 VIl nok si det funker like bra med en \, så test selv! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå