Versio

Website uit database met eval()

Overzicht Reageren

Sander de Vos

Sander de Vos

27/05/2010 00:05:56
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
    }
}

?>

En wat moet hieraan verbeterd/veranderd worden?
Is hier een andere 'veiligere' methode voor?

Alvast bedankt ;)
 
PHP hulp

PHP hulp

25/05/2012 19:26:19
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Karl Karl

Karl Karl

27/05/2010 00:10:57
Quote Anchor link
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!
Gewijzigd op 27/05/2010 00:27:22 door Karl Karl
 
Jelmer rrrr

Jelmer rrrr

27/05/2010 00:24:52
Quote Anchor link
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?
 
Sander de Vos

Sander de Vos

27/05/2010 11:05:23
Quote Anchor link
Omdat het kan.

Bij WordPress sla je pagina's ook op in de database, hoe doen ze dat dan?
 
Karl Karl

Karl Karl

27/05/2010 11:09:40
Quote Anchor link
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).
 
Sander de Vos

Sander de Vos

27/05/2010 11:12:15
Quote Anchor link
Ok, niet doen dus.
Maar waar is eval() dan wél voor bedoelt?
 
Karl Karl

Karl Karl

27/05/2010 11:18:19
Quote Anchor link
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.
Gewijzigd op 27/05/2010 11:18:41 door Karl Karl
 
Sander de Vos

Sander de Vos

27/05/2010 11:25:14
Quote Anchor link
Ok, eval is wel veilig om te gebruiken met html?
 
Karl Karl

Karl Karl

27/05/2010 11:32:55
Quote Anchor link
Waarvoor heb je eval dan nodig?
Nergens toch?
Al helemaal niet met html.
Dan doe je gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<strong>blaat</strong>';
?>
 
Terence Hersbach

Terence Hersbach

27/05/2010 11:33:49
Quote Anchor link
je hoeft geen html in eval te stoppen.. html kan je weergeven dmv echo
 
Sander de Vos

Sander de Vos

27/05/2010 11:42:29
Quote Anchor link
Ok, dan echo je de html rij gewoon.
Thnx voor jullie hulp!
 



Overzicht Reageren