Website uit database met eval()
Heb net de "eval() is gevaarlijk tut" zitten doorlezen.
Maar is het nou wel of niet verstandig om even op de volgende manier te gebruiken:
En wat moet hieraan verbeterd/veranderd worden?
Is hier een andere 'veiligere' methode voor?
Alvast bedankt ;)
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 ;)
Gesponsorde koppelingen:
Niet doen!
(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!
(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!
Gewijzigd op 27/05/2010 00:27:22 door Karl Karl
Niet doen!
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?
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?
Omdat het kan.
Bij WordPress sla je pagina's ook op in de database, hoe doen ze dat dan?
Bij WordPress sla je pagina's ook op in de database, hoe doen ze dat dan?
Jah, je kunt ook onder een trein springen, maar dat is dus net zo nutteloos (en dodelijk) als dit.
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).
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).
Ok, niet doen dus.
Maar waar is eval() dan wél voor bedoelt?
Maar waar is eval() dan wél voor bedoelt?
Om php code uit te voeren.
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.
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.
Gewijzigd op 27/05/2010 11:18:41 door Karl Karl
Ok, eval is wel veilig om te gebruiken met html?
Waarvoor heb je eval dan nodig?
Nergens toch?
Al helemaal niet met html.
Dan doe je gewoon:
Nergens toch?
Al helemaal niet met html.
Dan doe je gewoon:
je hoeft geen html in eval te stoppen.. html kan je weergeven dmv echo
Ok, dan echo je de html rij gewoon.
Thnx voor jullie hulp!
Thnx voor jullie hulp!



