html tags probleem invoer via editor

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Remco schrubben

remco schrubben

25/07/2012 23:02:29
Quote Anchor link
In mijn admin heb ik op de text velden TinyMCE gekoppel zodat we de opmaak beetje kunnen sturen van berichten. Dit werkt wel goed en na wens.

Alleen bij het ophalen gaat er dingen fout.

De volgende tekst wil ik invoeren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Goeden Avond Mensen,
Bedankt dat u met zijn allen zijn gekomen op deze avond.


Ik voer het via de query in als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
bericht = '".mysql_real_escape_string($_POST['bericht'])."',
?>


In de database komt het te staan als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>


Vervolgens in de weergave haal ik het op als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlspecialchars($nieuws['beschrijving']) ;?>


Als weergave krijg ik nu tezien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<p>Goeden Avond Mensen,<br />
Bedankt dat u met zijn allen zijn gekomen op deze avond.</p>


Hoe zou ik dit kunnen oplossen?

Edit:
Als ik heb opvraag als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $nieuws['beschrijving'] ;?>

Krijg ik hem wel als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Goeden Avond Mensen,
Bedankt dat u met zijn allen zijn gekomen op deze avond.
Gewijzigd op 26/07/2012 00:34:26 door Remco schrubben
 
PHP hulp

PHP hulp

20/04/2024 07:20:07
 
Eddy E

Eddy E

26/07/2012 08:27:24
Quote Anchor link
Gewoon geen htmlspecialchars() eroverheen gooien?
 
Stefan WM

Stefan WM

26/07/2012 09:20:53
Quote Anchor link
htmlspecialchars is denk ik ook niet de functie die jij zoekt.
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
 
Obelix Idefix

Obelix Idefix

26/07/2012 09:28:51
Quote Anchor link
@Eddy: dat is wel een 'oplossing', maar of het verstandig is? Lees in ieder geval altijd dat je input door gebruikers kunt beveiliging richting database door mysql_real_escape_string, maar als je het er uithaalt en wilt tonen op het scherm, zul je het ook moeten 'beveiligen'. Anders zou je, alsnog, ellende kunnen krijgen. htmlspecialchars is een manier om dit te doen, maar heeft 'bijwerkingen'.
Geef dan liever aan hoe het wel te beveiligen is.
 
Wouter J

Wouter J

26/07/2012 10:09:36
Quote Anchor link
Ik zou dan strip_tags gebruiken en de tags die je editor toevoegt gewoon toestaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.
 
Stefan WM

Stefan WM

26/07/2012 11:17:39
Quote Anchor link
@Wouter J
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.
 
Remco schrubben

remco schrubben

26/07/2012 16:45:46
Quote Anchor link
Het idee van Wouter zou met het gegeven voorbeeld wel handig zijn.
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.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo strip_tags($nieuws['beschrijving'], '<p></p><br>') ;?>


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.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo strip_tags($user['beschrijving']) ;?>


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.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$html_tag_true
= '<p></p><br><i></i><b></b> enzzzzzzzzzz';
?>

En hoe gaat het dan met eventueel plaatjes in de teksten?
Gewijzigd op 26/07/2012 17:19:06 door remco schrubben
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.