我试图将HTML和PHP存储在MySQL文本字段中,并用PHP显示。
当它显示在网站上时,它会渲染为注释掉的标签:
<!--?php if(isset($sp_msg) && $sp_msg != ''){ print '<div-->
这当然把整页都搞砸了。
我应该如何正确显示这些数据?我想最终将其添加到一个功能齐全的CMS中,所以我想了解如何正确地做到这一点。
page.php
<?php require_once('library/autoload.php'); $pid = $_REQUEST['id']; $page = $ct->get_page_info($pid); $sp_msg = $page['special_msg']; require_once('h.php'); ?> <div id="row"> <?php print $page['page_content']; ?> </div> <?php require_once('f.php'); ?>
“page_content”以文本形式存储在mysql中
<h3>MY HEADER TEXT</h3> <?php if(isset($sp_msg) && $sp_msg != ''){ print '<div>'.$sp_msg.'</div>'; } ?> <hr> <p>paragraph text</p>
您需要评估存储的php代码。当你打印出存储在MySQL中的字符串时,你不运行它,只打印它。
<div id="row"> <?php eval($page['page_content']); ?> </div>
警告 我真的不建议这样做。如果有任何可疑的代码可以输入到数据库中,可能会引起很大的问题。例如,如果PHP代码不是加密病毒,则无法检查它。此代码将在服务器上执行任何操作。
请参阅PHP手册: eval