Website uit database met eval()
Maar is het nou wel of niet verstandig om even op de volgende manier te gebruiken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$result = mysql_query("SELECT * FROM php WHERE page = '$page'");
$num_rows = mysql_num_rows($result);
if ($num_rows == "0") {
die("Deze pagina bestaat niet!"); //Betere error komt later (afbeelding/flash)
}
while($row = mysql_fetch_array($result)) {
$content = $row['code'];
$title = $row['title'];
if ($num_rows > 0) {
eval('?>' . $content . '<?php ');
echo "<title>$title</title><br />$date";
}
}
?>
$result = mysql_query("SELECT * FROM php WHERE page = '$page'");
$num_rows = mysql_num_rows($result);
if ($num_rows == "0") {
die("Deze pagina bestaat niet!"); //Betere error komt later (afbeelding/flash)
}
while($row = mysql_fetch_array($result)) {
$content = $row['code'];
$title = $row['title'];
if ($num_rows > 0) {
eval('?>' . $content . '<?php ');
echo "<title>$title</title><br />$date";
}
}
?>
En wat moet hieraan verbeterd/veranderd worden?
Is hier een andere 'veiligere' methode voor?
Alvast bedankt ;)
(Niet dat ik je topic gelezen heb ofzo, maar je wilt php in de database stoppen en dan gaan uitvoeren. Dan vraag je om problemen (veiligheid, namespace / scope / w/e). Gewoon de php bestanden op de schrijf zetten. Waarom moet het in een database? Maakt de boel ook nog weer eens trager.)
Edit: Jah, ik weet het, ik bump. Maakt een lekker dramatisch effect.
Edit2: Hee, wie haalde mijn bumps weg? Als je het weg haalt, heb dan ook het lef om te zeggen dat je dat gedaan hebt!
Vraag jezelf eerst af "waarom wil ik m'n PHP code in de database opslaan, en niet gewoon als bestand". Kom dan terug, en leg het hier uit. Als wij (als in de rest van PHPhulp) je reden niet volledig lek kunnen prikken, of betere alternatieven kunnen aandragen, dan pas mag het.
Dus... waarom wil je je PHP code in de database opslaan, en niet gewoon als bestand?
Bij WordPress sla je pagina's ook op in de database, hoe doen ze dat dan?
WordPress slaat de data, dus gewoon de tekst, op in de database.
Je kunt met één bestand verschillende pagina's tonen, dat is juist het mooie aan dynamische sites maken met php, dat je niet allemaal aparte bestande hoeft zoals met html (wat jij nu in principe dus wel wilt).
Maar waar is eval() dan wél voor bedoelt?
Maar je hebt het dus eigenlijk nooit nodig.
De enige plek waar ik eval gebruik is in een simpel te-stscriptje hier op localhost. En dan nog zou dat niet nodig zijn denk ik.
Ok, eval is wel veilig om te gebruiken met html?
Nergens toch?
Al helemaal niet met html.
Dan doe je gewoon:
Thnx voor jullie hulp!