Website uit database met eval()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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

22/04/2024 06:29:07
 

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
 
Jelmer -

Jelmer -

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?
 

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?
 

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
 
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?
 

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

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.