【问题标题】:storing and rendering back php + html code into mysql problem将php + html代码存储和渲染回mysql问题
【发布时间】:2013-05-23 06:27:25
【问题描述】:

我正在创建自己的网站,我想将一些 php 变量 + Html 代码存储到 mysql 数据库中,并希望将其用于显示。喜欢

<a href="<?php echo $default_url;?>/link-to-page-1">page 1</a>
<a href="<?php echo $default_url;?>/link-to-page-2">page 2</a>

并简单地将其存储到 mysql 数据库中

//////////////////

首先显示数据时,我使用自己编写的基于 PDO 的选择函数(额外信息)获取它

第一行

<?php $default_url="localhost/cms"; ?>  // initializing $default _url variable

2ns 行

$body = select_body(); // returns above stored 

echo $body; 

在源代码中是这样显示的

<a href="<?php echo $default_url;?>/link-to-page-1">page 1</a>
<a href="<?php echo $default_url;?>/link-to-page-2">page 2</a>

而不是

<a href="localhost/cms/link-to-page-1">page 1</a>
<a href="localhost/cms/link-to-page-2">page 2</a>

【问题讨论】:

  • 你的视图文件是用PHP解析的吗?
  • 先生,我正在获取这个 $body="第 1 页 第 2 页";并像 echo $body 一样回显它;或者如果我这样做 echo eval($body);它工作正常,直到我使用像 $string="me"; 这样的简单字符串。 $body="你好这是$string";回声评估($body);但不能在这种情况下工作 page1
  • 也试过 eval("\$body = \"$body\";");回声 $body;

标签: php html mysql pdo


【解决方案1】:

如前所述,您的方式非常insecure way。你应该配置一个mod_rewrite 规则(如果你正在运行apache)。这使您能够重定向来自的任何呼叫 localhost/link-to-page-1localhost/cms/link-to-page-1 无需在数据库中存储不安全代码。对于其他网络服务器similar plugins 存在

【讨论】:

    【解决方案2】:

    不确定为什么要将 HTML 和 PHP 存储在数据库中。这是自己填的吗?如果是这样,请使用eval($code)。但这不是最安全的功能,它们可以有效地在代码中做任何事情。

    【讨论】:

    • 如果我将所有链接存储为 page 1 像这样我无法更改我的站点目录后记,因为我的其他页面中有大量硬编码的 url。如果我在页面名称之前存储了一个变量,我可以轻松更改变量的值,它很容易更改目录.... eval 函数工作正常,但在 标签下显示和我之前写的一样
    猜你喜欢
    • 2015-03-15
    • 2011-12-30
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2022-01-01
    相关资源
    最近更新 更多