Gå til innhold

Kan jeg implentere BB Koder på siden min?


Anbefalte innlegg

Videoannonse
Annonse

Ja.

 

F.eks en

[b] [/b]

tagg.

 

Hvis du vil legge til flere bb-koder kan du bare legge til flere values i arrayen.

 

function BB($x1) {

$bbkode = array('/\[b\](.*?)\[\/b\]/is' => '<strong>$1</strong>');

$tekst = $x1;
$tekst = nl2br(htmlspecialchars(stripslashes(preg_replace(array_keys($bbkode), array_values($bbkode), $tekst))));
return htmlspecialchars_decode($tekst);

}

Lenke til kommentar

Det må jeg si var et høyst «nyttig» svar. Du synes ikke du burde utdype hvorfor koden er vid åpen for «cross-site scripting»? Personlig tror jeg ikke det svaret hjelper så veldig på for de uvitende.

 

… men altså, koden over er en måte å løse problemet veldig enkelt på. Det fungerer til enkelt bruk hvor det ikke inntreffer rekursiv bruk av samme tag (f.eks. quote inni en quote), og trenger man ikke det kan man si seg fornøyd bortsett fra det allerede nevnte problemet med «cross-site scripting». Det FraXinuS burde forklart er hvorfor koden er det. Grunnen er ganske enkelt: < og > blir ikke omdannet til XML-entitetene > og < hvilket tillater at en bruker får sendt inn f.eks. <script src="http://evilsite/evilfile.js"> </script> og at dette faktisk ender opp i utskriften i den formen. Det finnes flere måter å løse opp i problemet, og strengt tatt er det utenfor funksjonens (BB) oppgave å rydde opp i dette problemet. Riktignok må det gjøres før man omdanner BB-kode til HTML, og uansett må man kjøre fortrinnsvis htmlspecialchars, eventuelt strip_tags eller htmlentities for å unngå problemer med «cross-site scripting».

  • Liker 2
Lenke til kommentar

Du trenger to ting:

PHP BBCode Parser:

Denne benytter du for å konvertere bbcode til HTML slik at det kan vises igjen. Fordelen med å benytte dette biblioteket er at de har gjort alt det slitsomme arbeidet og passet på å tette de fleste sikkerhetshull.

http://nbbc.sourceforge.net/

 

JavaScript (f.eks markitup):

For å kunne skrive bbcode er det en fordel å benytte javascript slik at man kan enkelt merke tekst, legge til smilies osv, kan anbefale:

http://markitup.jaysalvat.com/examples/bbcode/

Lenke til kommentar

Denne pleier jeg å bruke, slipper skrive alt selv og inneholder allerede alt man trenger. Også er det lett å legge til mer etter behov:

 

http://pastebin.com/5XpZTcSL

 

Bare for å pirke litt. Den klassen er åpenbart skrevet før PHP5 og burde således vært oppdatert. Problemet er instansvariablene var, istedenfor private/protected.

 

$bbcode = new codeLighter();
$bbcode->output("Sett inn hva du vil");

 

*pirk slutt*

 

Edit: Ettersom det er pre-PHP5, er konstruktøren åpenbart kalt det samme som klassen. Det gjør muligens sikkerheten litt bedre ettersom objektet som opprettes muligens må inneholde noen korrekte paramere. Det er allikevel ingenting som hindrer en fra å endre objektet på denne måten i etterkant dog.

Endret av Sono Juventino
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...