Archief - layout beschermen tegen slechte html

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bram

Legacy Member
Beste menschen

Ik zit met een ei: ik heb een pagina waar mensen mededelingen kunnen op plaatsen. Ze kunnen in deze mededelingen HTML steken (ook copy/pasten ze vaak vanuit andere pagina's, Word...).

Dit zorgt er echter voor dat van tijd tot tijd wat slechte HTML mee gekopiëerd wordt en m'n layout breekt, met alle gevolgen van dien.

Is er een manier om dit te voorkomen, een tag die opmaak blokkeert ofzo die ik niet ken?

Ik had gedacht aan alles in een iframe steken, maar dit lijkt me niet echt een vlotte oplossing.

Bram

Legacy Member
Is geen optie, daar de opmaak die men er in steekt wel bewaard moet blijven.

Tyfius

Legacy Member
Je kan kijken naar WYSIWYG editors zoals TinyMCE en CKEditor. Deze bevatten paste-from-word mogelijkheden en in sommige gevallen ook HTML cleanup functionaliteit.

Bram

Legacy Member
Tyfius zei:
Je kan kijken naar WYSIWYG editors zoals TinyMCE en CKEditor. Deze bevatten paste-from-word mogelijkheden en in sommige gevallen ook HTML cleanup functionaliteit.

We gebruiken momenteel al TinyMCE. Het probleem zit hem jammer genoeg bij mijn gebruikers (zo'n 20 000), die de paste from word knoppen etc niet gebruiken.

Ik ga wel eens nakijken of ik die html cleanup niet kan forceren bij het submitten.

Slynx

Legacy Member
Ik heb voor zo'n zaken een iets of wat eigen BBcode tag-systeem geschreven. Op deze manier kan je enerzijds toch wat beheren wat er in je database komt op vlak van html tags, en hoeven gebruikers niet rechtstreeks html tags in hun posts te zetten.

RobinVdB

Legacy Member
BB code is inderdaad een optie Slynx, maar dan heeft Bram wel een probleem met de oude berichten.

Bram

Legacy Member
Probleem is dat we met 20 000 leerkrachten zitten die het systeem gebruiken. Het systeem wijzigen voor de gebruiker (naar BB code, andere editor...) is niet echt een optie (ervaring leert dan men slecht reageert op wijzigingen). Het probleem zit hem ook niet bij het intypen van HTML code (meeste gebruikers kennen hier zelfs niets van).

Het probleem zit hem echt in het plakken. Ik veronderstel dat het opkuisen van HTML de enigste optie is.

W0utR

Legacy Member
Met strip_tags() kan je wel een parameter invullen van welke tags je toelaat, hierdoor kan je er al een deel uitfilteren.

string strip_tags ( string $str [, string $allowable_tags ] )
strip_tags($text, '<p><a>');
Dus nu worden enkel <p> en <a> toegelaten.

Bram

Legacy Member
W0utR zei:
Met strip_tags() kan je wel een parameter invullen van welke tags je toelaat, hierdoor kan je er al een deel uitfilteren.


Dus nu worden enkel <p> en <a> toegelaten.

De content komt in een tabel, maar mensen moeten bv ook een tabel kunnen toevoegen, dit is dus ook geen optie :p

RobinVdB

Legacy Member
Bram, het lijkt me persoonlijk eerlijk gezegd wel een zeer moeilijk probleem waar wij je niet mee kunnen helpen. Ik zou opzoek gaan naar een webdevloper bedrijf dat het voor jou wilt oplossen.

Bram

Legacy Member
Haha :' )

Oké, merci Scriptors. Ik ben de web developer in mijn bedrijf, ik vrees dat ik het zelf ga moeten oplossen :p

RobinVdB

Legacy Member
O, ja dan ga je het zelf moeten oplossen Bram. :X Ik zou het zelf begot niet weten, aangezien er vaak problemen zullen zijn dan met de oude DB tenzij je er 2 gaat gebruiken. Één voor de oude en één voor de nieuwe. En Bram, doe je enkel aan de developerment of ben je ook de webmaster zoals we het noemen. Anders zou jij het kunnen controleren, of is dit niet mogelijk?

Bram

Legacy Member
RobinVdB zei:
O, ja dan ga je het zelf moeten oplossen Bram. :X Ik zou het zelf begot niet weten, aangezien er vaak problemen zullen zijn dan met de oude DB tenzij je er 2 gaat gebruiken. Één voor de oude en één voor de nieuwe. En Bram, doe je enkel aan de developerment of ben je ook de webmaster zoals we het noemen. Anders zou jij het kunnen controleren, of is dit niet mogelijk?

We hebben zo'n 400 scholen die elk op hun eigen installatie zitten en dagelijks met z'n allen een paar duizenden berichten sturen, dat modereren gaat niet lukken :p

Ik ga eerst eens testen hoe goed TinyMCE is in HTML opkuisen... Desnoods zelf eens kijken om iets te schrijven.

RobinVdB

Legacy Member
Bram, ikzelf zou echt gaan werken met BB-codes en een functie erin steken voor word.

W0utR

Legacy Member
En waarom gaat je layout juist kapot?

Komt het door slechte / niet afgesloten tags in de ingevoegde content?
Of doordat width en height niet meer gerespecteerd worden.

Kan je anders even een screenshot nemen van een slechte layout?

Bram

Legacy Member
W0utR zei:
En waarom gaat je layout juist kapot?

Komt het door slechte / niet afgesloten tags in de ingevoegde content?
Of doordat width en height niet meer gerespecteerd worden.

Kan je anders even een screenshot nemen van een slechte layout?

Beide gevallen hebben we al voorgehad.

De content staat in een table cell. We hebben het al gehad dat men gewoon een <tr><td></td> plakt die dan buiten de tabel valt, ook al gehad dat men een te lange url invoerde waardoor de cel te breed werd... Beide komen voor.

VinhoSantos

Legacy Member
Bram, je gaat hier echt met bb code moete werken.
Waar je ook rekening moet mee houden is dat als iemand een bb tag opent (bv ) maar niet sluit, dat je dit niet omvormt naar html, zo kunnen ze je layout niet om zeep helpen.

Met tables wordt dit iets ingewikkelder maar nog steeds doenbaar.

Bram

Legacy Member
De suggestie is vriendelijk eh, maar 't is echt geen optie. We kunnen onmogelijk mensen nu forceren om met BB code te werken. 1: ze gaan het niet willen leren, 2: de concurrentie doet het ook niet.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan