首页 > 解决方案 > 如何使用存储在数据库中并在新页面中回显的 PHP 代码?

问题描述

我是 PHP 的初学者,所以我需要一点帮助。

我已将一些 PHP 代码存储在 MySQL 数据库中(在表中),现在我尝试在<?PHP echo $result['code'];?>与数据库成功连接并选择将代码存储在code柱子。但它不起作用。

如果我在数据库中存储 HTML 或 JavaScript 或任何代码并尝试回显,则内容将按照编程方式显示,如下图所示:

所以这是查看源代码页面的图像,我试图展示 HTML 或 HTML CSS 完美地工作,但在 PHP 的情况下,它以红色显示 PHP 并且它不起作用.

但它不适用于 PHP。我该如何解决?

标签: phpmysql

解决方案


我将不得不做一些猜测,并展示一个非常简单的例子,但是像下面这样的东西应该可以工作。

  1. 向您的表中添加一code_type列,其值为 html、php等。

  2. 确保存储在数据库中的任何 php 代码都已经过测试并返回一些输出(不使用<?php标签)。例如:

    $var1 = 100;
    $var2 = 10;
    $var3 = 1;
    
    echo "<h1> The equation of ($var1*$var2+$var3) equals</h1>";
    echo "<p>".($var1*$var2+$var3)."</p>";
    
  3. code_type您的数据输出脚本中使用 来评估 PHP 代码或在所有其他情况下只回显它:

    <?php
    if ($result['code_type'] == 'php') {
        eval($result['code']);
    } else {
        echo $result['code'];
    }
    ?>
    

我不能说我曾经使用过它,所以我不能保证任何事情,但希望能为您指明正确的方向。

重要的:

值得注意的是,这不是好的做法,正如PHP 手册页中多次指出的那样。手册本身在几个地方都有注释,但第一条评论很关键:

如果 eval() 是答案,那么您几乎肯定会问错问题。-- Rasmus Lerdorf,PHP 的 BDFL

...在将 php 代码保存到数据库之前解析它可能会好得多,那么您就不必担心这些了!


推荐阅读