html tags probleem invoer via editor
Alleen bij het ophalen gaat er dingen fout.
De volgende tekst wil ik invoeren:
Ik voer het via de query in als:
In de database komt het te staan als:
Code (php)
1
2
2
<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>
Vervolgens in de weergave haal ik het op als:
Als weergave krijg ik nu tezien:
Code (php)
1
2
2
<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>
Hoe zou ik dit kunnen oplossen?
Edit:
Als ik heb opvraag als:
Krijg ik hem wel als:
Gewijzigd op 26/07/2012 00:34:26 door Remco schrubben
Gewoon geen htmlspecialchars() eroverheen gooien?
Dit zorgt er juist voor dat het niet als HTML uitgevoerd wordt.
Kijk maar eens hier
Gewijzigd op 26/07/2012 09:23:55 door Stefan WM
Geef dan liever aan hoe het wel te beveiligen is.
strip_tags gebruiken en de tags die je editor toevoegt gewoon toestaan:
Ik zou dan Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$str = '<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>';
$txt = strip_tags($str, '<p><br />'); // gebeurd niks bijzonders
$str = '<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>
<script>alert(\'script injectie!!!\');</script>';
$txt = strip_tags($str, '<p><br />'); // script tag wordt weggehaald.
$str = '<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>';
$txt = strip_tags($str, '<p><br />'); // gebeurd niks bijzonders
$str = '<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>
<script>alert(\'script injectie!!!\');</script>';
$txt = strip_tags($str, '<p><br />'); // script tag wordt weggehaald.
Het is een leuke oplossing voor kleine dingen als je weet wat er gaat komen. Echter als je veel (HTML) opties wilt toestaan heb je zo een hele lijst met tags.
Daarnaast is de kans dat je dan een tag vergeten bent vrij groot. Het lijk mij dus alles behalve een ideale oplossing.
Alleen omdat ik tinymce gebruik weet ik nooit welke tags de gebruiker zal gaan gebruiken. Moet ik dan alle mogelijke tags moeten gaan vermelden?
Of is er nog een makkelijke manier er voor?
Up-date:
Heb even naar de functie gekeken van Wouter.
Als ik doe werkt het goed.
Als ik doe, dan worden de html tags wel weg gehaalt. Maar er word niks mee gedaan. Dus bij een <br> word er geen enter gezet.
Vraag mijdaarom dan ook sterk af of ik alle beschikbare html tags moet gaan zetten in een $var zoals voorbeeld. Of dat er toch nog een makkelijke functie bestaat.
En hoe gaat het dan met eventueel plaatjes in de teksten?
Gewijzigd op 26/07/2012 17:19:06 door remco schrubben