Pereiti prie turinio

HTML tag'ų vaizdavimas, nepaveikiant turinio [kaip?]


Rekomenduojami pranešimai

Sveiki,

Taigi laužau galvą ir neišmastau kaip padaryti, kad pvz:

<table>
     <tr>
        <td>
          <?php print [b]$value[/b]; ?>
        </td>
     </tr>
</table>

Tai, kad $value galėtų įeiti html tag'ai, ir, kad jie nepaveiktu jau esančio turinio.

Pvz $value yra aprašymas kažkokio tai serverio ar šeip straipsnis ir noriu, kad jame veiktų HTML tag'ai, tačiau kaip ir minėjau vaizdas gaunasi pvz toks, įsivaizduokime, kad narys turintis šiek tiek suvokimo apie HTML galėtų iškraipyti dabartinį tinklalapio atvaizdavimą, jokiu htmlentities nerašykite, kadangi jie išvis padaro, kad html TAGs prarastų vertę, o čia pavyzdys kaip šiuo metu galima paveikti tokį atvaizdavimą, tad ieškau vaistų šiai opai gydyti:

<table>
     <tr>
        <td>
          <\\--- čia tas [b]$value[/b] daleiskime </td></tr></table> ----//>
        </td>
     </tr>
</table>

Redagavo mdainius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jei įmanoma – neleisk vartotojui rašyti HTML tagų išvis. Naudok BB kodą ar kokį Markdown – su pastaruoju iš esmės gali pasidaryti ir custom tagus.

 

HTML sanitizavimas – sudėtingas dalykas, iš esmės veiksmingas metodas – tik whitelistas arba visiškas tagų šalinimas. Tiesa, dar viena išeitis tau – turinį rodyti iframe. Tada nepaveiks tavo tikrojo puslapio turinio išvaizdos, tačiau XSS pavojus leidžiant rašyti bet kokį HTML vis tiek lieka.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jei įmanoma – neleisk vartotojui rašyti HTML tagų išvis. Naudok BB kodą ar kokį Markdown – su pastaruoju iš esmės gali pasidaryti ir custom tagus.

 

HTML sanitizavimas – sudėtingas dalykas, iš esmės veiksmingas metodas – tik whitelistas arba visiškas tagų šalinimas. Tiesa, dar viena išeitis tau – turinį rodyti iframe. Tada nepaveiks tavo tikrojo puslapio turinio išvaizdos, tačiau XSS pavojus leidžiant rašyti bet kokį HTML vis tiek lieka.

Na šita idėja pas mane veikia šitaip - yra langas parašyti pranešimui, žmogus ten gali rašyti BBcodes ir tą pranešimą papostina, tada naudoju preg_prepleace funkciją, kad konvertuoti tą BBcode į HTML kodą ir šitokiu principu išgaunu pilnai matomą veikiantį rezultatą, tik vat egzistuoja problema, kurią nurodžiau pirmąjame savo pranešime, šioje temoje.

 

Pasiskaityk: htmlspecialchars() Tai ko tau reikia.

Iš dalies tu teisus, bet NE. Matai ši funkcija pakeičia tuos special charaus į html kodukus, o tai padaro, kad neveiktu html tags, taip tai iš dalies išsprendžia mano problemą, kadangi niekas neiko negali prikurti, tačiau kaip tuomet padaryti, kad veiktu color fonts size kiti codes tame lange?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na šita idėja pas mane veikia šitaip - yra langas parašyti pranešimui, žmogus ten gali rašyti BBcodes ir tą pranešimą papostina, tada naudoju preg_prepleace funkciją, kad konvertuoti tą BBcode į HTML kodą ir šitokiu principu išgaunu pilnai matomą veikiantį rezultatą, tik vat egzistuoja problema, kurią nurodžiau pirmąjame savo pranešime, šioje temoje.

Tai nežinau, kaip tada gali būti taip – gal tavo BB kodas per daug leidžiantis, ar ką? Nes iš esmės turėtų būti maždaug tik bold, italic, underline, link, image – ir viskas...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai nežinau, kaip tada gali būti taip – gal tavo BB kodas per daug leidžiantis, ar ką? Nes iš esmės turėtų būti maždaug tik bold, italic, underline, link, image – ir viskas...

Gerai situacija tokia, textarea pas mane yra patiurbinta tiny_mce editoriumi, kuris leidžia ten msylies pridėti, visus kitus kodus, demo - http://www.tinymce.com/tryit/full.php,

Na, o problema tokia, kad kai žmogus papostina pranešimą, pas mane neveikia BBcodes tinklalapyje tai aš su preg_replace f-ja pakeičiu tuos bbcodes į html, bet tai iššaukia kitą problemą - galimybę piktavališkai iškraipyti puslapį.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Iš dalies tu teisus, bet NE. Matai ši funkcija pakeičia tuos special charaus į html kodukus, o tai padaro, kad neveiktu html tags, taip tai iš dalies išsprendžia mano problemą, kadangi niekas neiko negali prikurti, tačiau kaip tuomet padaryti, kad veiktu color fonts size kiti codes tame lange?

 

Tai tau daviau funkciją tokią kurios tau reikia. Jeigu šneki apie bbcode, tai visi style ir t.t. tai jau sugeneruoji juos pats. Ar aš klystu? Ar tu nori kad tarkim žmogus įveda <span style="color: red;">Kazkas</span> rodytų raudoną tekstą, o jei įveda <script>alert(document.cookies);</script> tiesiog pašalintų tuos tagus? Jei taip, tai tuomet tau reikia strip_tags()

 

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...