Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

feedback code highlighting

2

Reacties

  • PMPosts: 879
    Ja we kunnen overschakelen op Markdown of BBCode; html als inputformatter heeft al vaker hier en daar problemen opgeleverd
  • Zolang het deftig opgeslagen wordt kun je overstappen naar eender wat.

    Het gaat meer om het uitlezen/afhandelen van de output, en ik ben bang dat dat een nog grote pijn in de k0nt gaat zijn voor het forum?
    Je kunt zelf vast wel een paar preg_replaces in elkaar bouwen, maar die zijn vast weer verloren bij een update van het forum, of niet?
    Je zult dan sowieso de oude tags moeten omgooien naar ubb tags in de db . (iets wat ik wel zou doen)
    nuet
  • bewerkt ma 4 jan 2016
    PMPosts: 879
    vinTage schreef:: Je kunt zelf vast wel een paar preg_replaces in elkaar bouwen, maar die zijn vast weer verloren bij een update van het forum, of niet?
    Dat klopt; als ik die veranderingedn doorvoer in de core files gaan ze met een update verloren. Maar ik kan natuurlijk wel ff een aantekening maken voor mezelf wat ik waar heb veranderd en bij een update weer toevoegen.
    Ik zal eens met die BBcode gaan stoeien. Heb er geen ervaring mee tot dusverre maar wat je heirboven schrijft

    [code = js]
    //js code
    [/code]

    Dat is toch BBcode tags?
  • bewerkt ma 4 jan 2016
    PMPosts: 415
    nuet schreef:: overschakelen op Markdown of BBCode
    nuet schreef:: Ik zal eens met die BBcode gaan stoeien
    Ik snap niet waarom je daar een 3th party ding voor nodig hebt als je het zelf maakt.
    Je klikt in de editor op bv het php knoppie en dan verschijnt er [code=php][code](of whatever je wilt)-> let wel dat dit (zoals nu) omringt wordt door een selectie!

    De lastigheid zit hem in het parsen van de juiste output, maar uiteindelijk is dat serverside niet meer dan
    [code(*.?)] (*.?) [/code]
    omgooien naar een pre of code class="jsvoorwaarde", en de rest is javascript voor de opmaak.

  • bewerkt ma 4 jan 2016
    PMPosts: 415
    Voorbeeldje gemaakt (copy/paste in testbestandje en bekijk de sourdce!!)

    <style>
    code{display: block; border: 1px solid green}
    </style>
    <?php
    $str = "abc whatever txt je hier kwijt wilt, maar er staat een codeblok in de
    reactie en wel hier: [code]var js = 'js code'[/code] en hier staat weer meer bullsh!t
    en voor de zekerheid nog een blokje [code]<?php echo aap();?>[/code]
    en meer tekst...
    en je kunt zelfs gewoon <code> of <pre> of WHATEVER typen, en veilig!";
    $str = preg_replace('~\[code](.*)\[/code]~',"<code class='prettyfierOfZoIets'>\\1
    ", htmlentities($str) );
    echo $str;

    update,
    die $str (het bericht uit je database) verder getest door bv htmlentities erin te zetten->probleemloos, die worden ook zo getoond.
    Mijn opzetje getest met class="prettyprint" en google prettify eroplos gelaten en dat werkt ook zoals het hoort.
  • PMPosts: 879
    Kijk even hier naar de laatste 2 comments; BBCode is nu actief: http://develop3.webprofis.nl/discussion/comment/2506/#Comment_2506 (edit de post even om te bekijken wat de source is)
    Gebruik je gewone html tags, dan wordt ie ook geouptut als html; zet je de html tags tussen [code][/code], dan wordt ie als codeblock behandeld. Dit is wat je bedoelt denk ik toch? Het enige is die backslashes die hij produceert bij de output voor en na submit; ff kijken hoe dat te verhelpen is
    En in de editor moe tik alleen nog de gekleurde A's aanpassen
  • Die slashes kun je weghalen dmv stripslashes($dbmeuk)
    En nu wordt er nog altijd html geparst....(buiten de codeblokken)
  • bewerkt ma 4 jan 2016
    PMPosts: 879
    vinTage schreef:: En nu wordt er nog altijd html geparst....(buiten de codeblokken)
    Maar dat moet toch ook blijven bestaan die mogelijkheid of heb ik het verkeerd begrepen? Moet het html parsen niet meer mogelijk zijn?

  • Ik vind van niet, want zo kan je niet eens een html tagje typen zonder er perse een codeblok omheen te hangen.
    Maar ik begrijp ook wel dat het onmogelijk is om terug te draaien omdat alle posts en reacties al zijn opgemaakt met html.
  • bewerkt ma 4 jan 2016
    PMPosts: 879
    Als we html tags volledig uitsluiten van parsen dan is het ook niet mogelijk meer om kleurtjes te geven aan stukken tekst; want die werken vlg het principe:

    <font color="red">Rood</font>
    Het lijkt mij het meest voor de hand liggende (ook omdat een en ander neit meer terug te draaien is) om gewoon html als inputformatter te blijven gebruiken en mocht je een stukje html willen weergeven zonder het in een code block te willen zetten, gebruik dan de inline code. voorbeeldjes hieronder:

    <code> tags
    <button type="submit">Versturen</button>

    En wil je het in een block:

    <button type="submit">Versturen</button>

    Die rode achtergrondkleur is natuurlijk weg te halen bij de inline code
    Enfin, dat is mijn mening maar sta open voor argumenten om het toch neit zo te doen...wat is meest logisch?
    (edit de post even om de source te bekijken)

  • nuet schreef:: Als we html tags volledig uitsluiten van parsen dan is het ook niet mogelijk meer om kleurtjes te geven aan stukken tekst;
    Natuurlijk is dat wel mogelijk, maar alleen als alles ubb wordt like so: [geel]tekst[/geel]

    Maar alles terugdraaien is inderdaad onbegonnen werk!
    Dan zou je echt letterlijk alles met de hand moeten veranderen omdat die html code's ook in codeblokken kunnen voorkomen en die wil je niet replacen met ubb.
    Dus gewoon laten zoals het is, en bij je volgende developpers community met ubb werken ;-)


  • PMPosts: 879
    idd, hier een testje en werkt perfect: http://develop3.webprofis.nl/discussion/comment/2514/#Comment_2514
    Alleen nog ff zorgen dat de color buttons andere tags genereren
  • bewerkt ma 4 jan 2016
    PMPosts: 879
    Maar waarom zou BBCode tags te prefereren zijn boven Html tags als input?

  • Omdat je dan gewoon een zin kan typen waarin een html element staat, zonder er een code/blok van te moeten maken of entities.
    En aangezien er op een developers forum nogal eens wat htmltags om de oren vliegen ;-)
  • bewerkt di 5 jan 2016
    PMPosts: 879
    Ja ik snap het gemak. Alleen wee t ik niet hoe ik dat spits moet krijgen. Ik heb nu BBCode enabled maar als je op het develop3 forum bijv <span> intypt, zie je niets, dus hij output het als html. Weet neit hoe ik het zover krijg dat geen enkele html tag meer als html geoutput wordt maar letterlijk wordt weergegeven met angulars en alles.
    De enige manier wanneer het wel werkt is als ik HtmLawed uitschakel maar dan loop ik een XSS risico
  • nuet schreef:: zie je niets, dus hij output het als html.
    Oh, das lekker dan..
    Daarom ook altijd alles uitspugen als htmlentities, dat roep ik al jaren overal :p
    Hier kun jij niets aan doen, dat is gewoon de core van dit forum.
    De enige manier om dat te omzeilen is inderdaad de core in te gaan/aanpassen en bij een update opnieuw.

    Geen idee wat die HtmLawed doet, als die voorkomt dat html geparst wordt, dan lijkt me die juist veiliger dan de huidige situatie..? Maar daarvoor moet ik wel exact weten wat die doet.
  • bewerkt di 5 jan 2016
    PMPosts: 879
    Ik heb nu HtmLawed uitgeschakeld en nu wordt de html letterlijk weergegeven: http://develop3.webprofis.nl/discussion/463/test-html-output?new=1
    Maar ook de code als ie tussen de code tags staat, wat dus net NIET de bedoeling is
    Dit is de HtmLawed (bijlage)
    Hier is wat meer info over de plugin: https://github.com/vanilla/htmlawed (plugin)
    http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/htmLawed_README.htm#s2.2
    zip
    zip
    HtmLawed.zip
    17K
  • Dat is nogal wat om door te spitten...
    MAAR..., van wat ik er in de vluchte van begrijp, is dat je zonder die plugin juist g????n html kunt laten parsen.
    Die plugin maakt het i.m.h.o mogelijk om juist WEL bepaalde html elementen te kunnen typen/parsen.

    Dus zonder die plugin is het beter, maar moet je nog altijd die [ code ] blokken replacen.
  • bewerkt wo 6 jan 2016
    PMPosts: 879
    Klopt, die plugin maakt het mogelijk om wel html te kunnen parsen maar is er voor gemaakt dat het html parsen op een veilige manier gebeurtzodat geen XSS lekken kunnen voorkomen. E over ik begrijp levert het uitschakelen vcan die plugin geen enkel meer risico op want html parsen is dan in het geheel niet meer mogelijk, en daarmee ook geen XSS risico meer. Alleen die [code]..[/code] moe t ie juist wel parsen en dat moet dus ook veilig gebeuren

    unlink('index.php');
    niet einde Webprofis is ;) ;)
  • Daar had ik een voorbeeldje voor gemaakt, maar moet je voor in de core zijn.
  • PMPosts: 879
    Maar zit ff te denken; als alle html tags geparsed kunnen worden en HtmLawed is daar verantwoordelijk voor, dan moet je dus ook exceptions in HtmLawed kunnen maken voor bepaalde tags toch??
  • bewerkt wo 6 jan 2016
    PMPosts: 415
    Dunnow en vind ik ook niet interessant, al die nietszeggende onbeduidende plugins met abracadabra codes...

    Maar stel dat dat kan, dan heb je er nog geen bal aan, want wat gebeurd er als je een element toelaat, en je plaatst in dat element een andere toegestaan element.....lap gelijk heel je codeblok om zeep.

    Dus gewoon g????n html toestaan ;-)


    edit:
    php executen en html toestaan zijn twee verschillende dingen (die in uber geval van achterlijkheid ook mogelijk kunnen zijn)
    Als je (alle) html toestaat, dan kan ik je cookie of sessie ID kapen middels javascript en zo jouw status overnemen. (in geval van een goeie hacker dan)
    nuet
  • PMPosts: 879
    Klopt, dat is het makkelijkste ja. Kun je ook niets vergeten
  • Makkelijkst voor iedereen, je weet dat je gewoon kan typen wat je wilt zonder dat je bericht in gort gaat.
    Makkelijk om zooi in de db te vinden.
    Makkelijker om een regex aan te passen versus een hele database aan te passen
    Veiliger
    etc...alleen maar voordelen!
  • PMPosts: 879
    je hebt gelijk. Het gebruiksgemak is groter en vooral voor beginners die niet weten hoe ze met html tags moeten omgaan in de textarea is dit idd ideaal. Goed plan om dit door te zetten. Zal eens met dat voorbeeldje gaan testen van preg_replace
  • Besef je wel dat je dit niet (behalve handmatig, post per post) kan doorzetten naar deze database inhoud?
  • PMPosts: 879
    vinTage schreef:: Besef je wel dat je dit niet (behalve handmatig, post per post) kan doorzetten naar deze database inhoud?
    Dan komt toch dat Find and Replace tooltje goed van pas? Ik dump de localhost.sql, bewerk deze en importeer hem terug
    Maar ik zit nu ff te denken aan de ander html tags die ook uitgevoerd moeten worden: de kleurtjes,de bold, italic en del in de editor. Dan nog de inline images met <img> tags en hoe gaat een en ander werken met de preview? Doet die de html tags uitvoeren? Er moeten vlg mij dan vele uitzonderingen op gemaakt worden toch?
  • Je kunt niet met dat tooltje werken.
    Kijk NU staan er allemaal html tags in de database, voor de bold, underlines, etc ,etc.
    Ook de code blokken staan vol met html tags.

    Dus als je nu alle posts gaat replacen naar ubb, dan gebeurd dat OOK in de codeblokken, en in de tutorials en in de ...OVERAL.
  • bewerkt wo 6 jan 2016
    PMPosts: 879
    ik ben nu even aan het testen met < en > te vervangen door &lt; en &gt;
    Als ik het zover krijg dat de angulars na submit als &lt en &gt opgeslagen worden in de DB ben ik toch ver genoeg? heb net even getest en in de DB de angulars veranderd in&lt en &gt en dan krijg ik een mooie angular terug als output
  • PMPosts: 732
    Misschien een optie, ik gebruik ckeditor hier kun je zelf aangeven wat je wel en niet toestaat.
    Ook omtrent de code blok zijn er veel opties.

    Wat ook een voordeel is, je geeft aan bij downloaden wat je wel en niet wilt waardoor je script geminimaliseerd blijft.

    Maar is maar een voorstel, ben niet zoon JS freak hihihi...
    nuet
    If it's not fun, you're not doing it right!
Login of Registreer om te reageren.