2016-08-19 17 views
0

Ich muss ein PHP-Skripte von ECHO ausführen. Normalerweise ist die Ausgabe, die von der Datenbank kommt, ein Text, aber manchmal gibt es auch den PHP-Code darin. ['Inhalt'] ist in meiner Datenbank als LONGBLOB definiert. Wie bekomme ich es zusammen zu arbeiten?

function data_page ($dbc, $pageid){ 

    $q = "SELECT * FROM page WHERE id = $pageid"; 
    $r = mysqli_query($dbc, $q); 

    $data = mysqli_fetch_assoc($r); 

    return $data; 
} 

$page=data_page($dbc,$pageid); 

<?php echo $page['content'];?> 

content können diesen Code enthalten zum Beispiel <?php echo date('Y');?>

+0

Warum würden Sie speichern ';' in der Datenbank ? Warum nennst du das nicht einfach wo in einer PHP-Datei? Oder verwenden Sie SQL, um das Datum zu erhalten. – nerdlyist

+0

Warum haben Sie innerhalb von PHP-Klammern "echo $ page"? '' Sie sind bereits im PHP-Modus. Wenn ich das Problem verstehe, möchten Sie nur das Ergebnis wiedergeben, wenn es sich um Text handelt, aber was möchten Sie mit dem Ergebnis tun, wenn es sich um PHP-Code handelt? – BeetleJuice

+0

'eval ('?>'. $ Page ['content']);' – AbraCadaver

Antwort

0

Ich wusste, dass PHP diese Ursache, warum passieren lassen würde nicht. Ich zeige das nur, weil es ja gemacht werden kann. Du solltest darüber nachdenken. Sie können die Informationen leicht von SQL abrufen. Ich bin mir nicht sicher, was Sie sonst in der DB haben und das sollte in den meisten Fällen funktionieren.

Sie müssen die Schnur reinigen. Sie können keinen weiteren <?php ?> Block in einem vorhandenen Block haben. So sollte die Zeichenfolge in der DB sein echo date('Y');

Dann in Ihrem Code Sie diese anrufen:

<?php 
function data_page ($dbc, $pageid){ 

    $q = "SELECT * FROM page WHERE id = $pageid"; 
    $r = mysqli_query($dbc, $q); 

    $data = mysqli_fetch_assoc($r); 

    return $data; 
} 

$page=data_page($dbc,$pageid); 

eval($page['content']); 

?> 
Verwandte Themen