Eli käytössä on CMS -systeemi. Admin-sivulla laitan kantaan otsikon ja sisällön. Index-sivu tulostaa sisällön. Admin-sivuilla on tavallinen lomake, joka tallentaa tiedot suoraan kantaan. Kun kokeilee laittaa html-tageja kantaan, ne tulostuvat normaalisti tulostettaessa, mutta kun heittää php-koodia, niin ei onnistu. Htmlspecialchars -funktio on jo kokeiltu, mutta tuloksetta. Tai sitten olen kokeillut väärin. Eli saisinko ohjeita, kuinka pystyy tulostamaan php-koodin MySQL-tietokannasta.
Testasin ja itellä ainakin tulostui htmlentities-funktion läpi ajettuna:
<?php $result = $db->sql_query("SELECT text FROM testi WHERE id = 14"); // rivillä 14 on <?php echo 'hello world' ?> list($text) = mysql_fetch_row($result); echo htmlentities($text); ?>
Tuolla queryllä heittää erroria, mutta kun korjasin sen, niin ainakaan vielä ei toimi tuo tulostus. Missä muodossa sen koodin pitäis olla taulussa, ja minkätyyppinen se sarake on kannassa? Nyt kannassa oli <?php echo 'hello' ; ?> ja php-skripti tulosti täsmälleen: <?php echo 'hello' ; ?> "hello":n sijaan. Eli en tiedä selitinkö liian epäselvästi, mutta haen sellaista ratkaisua, että koodi on kannassa ja sen voisi suorittaa, ei "näyttää".. Kiitoksia jo nyt avusta.
<?php include 'inc/config.php'; ?> <?php $result = mysql_query("SELECT content FROM news WHERE id = 6"); list($content) = mysql_fetch_row($result); echo htmlentities($content); ?>
Ymmärsin nimenomaan, että haluat tulostaa PHP-koodit (kuten otsikossakin lukee). Jos haluat ajaa ne, ratkaisu on eval()-funktio jonkun kieron regexpin kanssa käytettynä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.