Hoe zorg ik ervoor dat HTML code uit een PHP variable wordt uitgevoerd op een pagina.
Onderstaande variable moet weergegeven worden als:
Deze tekst is vetgedrukt.
Ik krijg het niet voor elkaar.
<?php
$var1 = "Deze tekst is <b>vetgedrukt</b>."
echo $var1
?>
Het werkt niet waarschijnlijk omdat de string opgeslagen is in een database en ik de waarde hieruit ophaal.
Ondestaand mijn code:
$NaamInv = htmlspecialchars($_GET["Naam"]);
$gotten = mysql_query("SELECT * FROM workshop
WHERE Naam='".$NaamInv."' ");
if ($row = @mysql_fetch_assoc($gotten))
{
$Omschrijving = $row['Omschrijving'];
}
echo $Omschrijving;
Nu wordt de tekst welke tussen <b> en </b> staat niet vetgedrukt. Moet ik de tekst op een andere manier uit de database ophalen?
En daar zal dan het probleem zitten. Dit converteert al je tags naar mooie html entities zodat je het kan zien in je text, iets wat jij dus niet wil. Als je dit al doet met een zoekwaarde, dan zal je het ook wel doen als je iets in de database stopt. Dat moet je dus niet doen, het biedt geen enkele bescherming tegen sql injectie en zorgt ervoor dat je content in de database niet meer is wat de gebruiker ooit heeft opgegeven.