代码之家  ›  专栏  ›  技术社区  ›  ToddN Ata S.

PHP如何显示存储在MySQL中的HTML+PHP代码

  •  0
  • ToddN Ata S.  · 技术社区  · 3 年前

    我试图将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>
    
    0 回复  |  直到 3 年前
        1
  •  0
  •   Fenistil    3 年前

    您需要评估存储的php代码。当你打印出存储在MySQL中的字符串时,你不运行它,只打印它。

    <div id="row">
        <?php
            eval($page['page_content']);
        ?>
    </div>
    

    警告 我真的不建议这样做。如果有任何可疑的代码可以输入到数据库中,可能会引起很大的问题。例如,如果PHP代码不是加密病毒,则无法检查它。此代码将在服务器上执行任何操作。

    请参阅PHP手册: eval