03. september 2004 - 17:13Der er
24 kommentarer og 1 løsning
Kun tillade nogle tegn
heysa!
Brugere af min side har muligheden for at skrive en lille fritekst..
Men i den tekst skal der kun være mulighed for: <a href=""></a> <font color="#"></font> <b></b> <i></i> <u></u> <ul></ul> <li></li> <blockquote></blockquote>
Variablen hedder $info. Hvis brugeren indtaster andre tegn end disse (bortset fra alm bogstaver og tal), skal de ignoreres og bare udskrives på siden, så de ikke har nogen funktion..
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
Men ER de tegn tilladte på den måde? Men hvis det bare er font, så kan man vel også bare skrive <font size=""></font> Det skal ikke være muligt, kun color :)
Du kan jo bruge et regulært udtryk efterfølgende for at tjekke om der er color-tag med - men det kan da være at det ikke er godt nok med strip_tags. (man kan vel sagents bruge css - style="etellerandet" - hvis man vil).
Men så skal de alle tjekkes jo. men det burde være til at overkomme :).
Mange bruger løsningen at lave "egne" tags. fx. BBCode.. Hvor man bruger istedet for <b> og </b>. Så har du nemmere kontrol over det. Men hvis du vil have html'en, så vil jeg da godt se på noget regulær udtryk - efter aftensmaden :)
function mystrip_tags($text) { $text = strip_tags($text,'<a><p><font><b><i><u><ul><li><blockquote>'); return preg_replace_callback("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/i", 'attrcheck',$text); } ind på siden hvor jeg udskriver $info, skal det vel?
Den skal bare være defineret. Om du har den i samme fil, eller i en anden fil du henter ind med include/require er ligemeget:
Den bruges sådan her: $info = '<b>test</b>'; $info = mystrip_tags($info); print $info;
.. Jeg prøvede lige din html:
- linket bliver ikke skrevet ud, når der ikke er nogen titel. Prøv med: <a href="www.google.com</a>" target="_blank">http://google.com">www.google.com</a> så burde det virke - jeg kan ikke få min bold til at være grøn :-\ - Din html ang ul/li er forkert. Den bør være: <ul> <li>fraf</li> <li>faref</li> </ul>
Resultat: Punkt opstilling er korrekt nu. kursiv og underline er korrekt. bold er korrekt. linket bliver helt fjernet. font farver teksten mellem <b>bold</b>, og ikke den den burde. Ved tal opstilling skriver den ikke tallet foran. Indrygning korrekt.
Skal: $info = nl2br($info); function mystrip_tags($text) { $text = strip_tags($text,'<a><p><font><b><i><u><ul><li><blockquote>'); return preg_replace_callback("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/i", 'attrcheck',$text); } Stå på den side hvor det bliver smidt i db, eller siden hvor det bliver trukket ud? Det er nemlig ikke samme side..
hmm.. Hvordan ser din tekst ud, hel nøjagtig? Kan du ikke lave en test-side, der viser teksten, så jeg kan klippe/klistre så jeg kan få samme resultat.
De burde ikke synes noget om det.. Har jo skrevet hvad problemet var..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.