Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

HTMLspecialchars werk niet??

Lord Wodan
3 antwoorden
  • Ik heb een artikel gelezen op www.phpfreakz.nl

    Daar werd de functie htmlspecialchars beschreven, bij mij werkt dat niet? hoe kan dat

    voorbeeldscriptje
    [code:1:80f90afe68]
    ?php
    // script.php?iets=<a href='test'>Test</a>

    $new = htmlspecialchars($_GET['iets'], ENT_QUOTES);
    echo $new;
    ?>
    [/code:1:80f90afe68]
    Volgens hen moet de browser dit weergeven
    [code:1:80f90afe68]
    //Stuurt de volgende string naar de browser: &lt;a href='test'&gt;Test&lt;/a&gt;
    [/code:1:80f90afe68]

    Jammer maar helaas bij mij geeft de browser dit weer!

    [code:1:80f90afe68]
    <a href='test'>Test</a>
    [/code:1:80f90afe68]

    Daar heb ik dus helemaal niks aan!

    hoe kan dit?
  • Dit moet inderdaad werken en kan ook niet aan bijvoorbeeld de versie van php, geïnstalleerd op de server liggen…

    $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);

    zie ook: De php manual

    Probeer anders eens de functie htmlentities(), deze vertaald alle mogelijke tekens naar html entities (dus niet alleen <, > en &).

    Wat ook nog zou kunnen is dat deze functie op de een of andere manier uitgeschakeld is op je server….

    Weet t verder eigenlijk ook niet…

    Jasper

    EDIT: Kijk eens in de bron van de pagina die gegenereerd wordt!! (rechtermuis, bron bekijken oid) Als het goed is zie je hier wel de juiste code!!!

    Wat er gebeurt is dat er op je pagina niet echt een link komt te staan naar 'test'!! Dit wordt met name gebruikt om te voorkomen dat mensen via de adresbalk scripts kunnen uitvoeren op je server enzo!!
  • aha dus de functie veranderd de broncode maar niet de browseroutput zodat het "lijkt" dat er niets veranderd..

    maar waardoor komen die \\ in 'test'>[/color:d0ed0606f1] er bij?

    ik ga maar eens naar magic quotes kijken.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.