Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数据库中存储和回显php代码_Php_Mysql_Database - Fatal编程技术网

在数据库中存储和回显php代码

在数据库中存储和回显php代码,php,mysql,database,Php,Mysql,Database,我一直在尝试验证这一点。我把下面的代码输入数据库 <?php $test = "Whats up"; print $test; ?> 然后在一个页面上,我选择,然后我尝试回显,但除非我去掉开始和结束标记,否则它不会这样做。所以,如果我想通过从db调用来执行这个php,我该如何做呢?谢谢 用于将字符串视为可运行的PHP代码,例如: <?php $string = 'echo "hello";'; eval($string); ?> 正

我一直在尝试验证这一点。我把下面的代码输入数据库

  <?php

   $test = "Whats up";

   print $test;

   ?>

然后在一个页面上,我选择,然后我尝试回显,但除非我去掉开始和结束标记,否则它不会这样做。所以,如果我想通过从db调用来执行这个php,我该如何做呢?谢谢

用于将字符串视为可运行的PHP代码,例如:

<?php
$string = 'echo "hello";';
eval($string);
?>


正如佩卡所建议的那样,这是一种不好的做法,您可能应该重新考虑您的解决方案。几乎没有人愿意在数据库中存储代码(数据库用于数据)。

您可以使用serialize-unserialize函数保存对象或变量。你们可以使用这个函数来运行代码,这正是我想要的。我们在多台服务器上部署了CMS,为了维护基本功能(无需在我们的主要功能文件中包含基于url的内容),从我们的group=wide单一数据库存储和调用这些功能更容易。我们使用medium blob并在那里存储一个序列化的base_64编码文本文件

因此,为了序列化代码,我们使用此脚本而不使用php标记:

<form name="serialise_script" action="" method="post" >
    <p>Put Script in here (without php tags???)</p>
    <textarea cols="100" rows="25" name="serializeme" ></textarea>
    <input type="submit" name="go" value="go" />
</form>

<?php if(isset($_POST['serializeme'])){
    echo "<p>Your Code</p><textarea style='border:3px solid black;padding:0.5em;' cols='100' rows='25' >" . base64_encode(serialize($_POST['serializeme'])) . "</textarea>";
 } ?>
但这是我工作所需要的评估。序列化和编码意味着我们不应该有任何问题

现在,我所需要做的就是为跨特定服务器的许多站点管理1个基本代码。也就是说,一个bug修复可以解决所有部署中的所有问题

谢谢


Andi

请添加更多上下文。“从数据库调用代码”是什么意思?这通常是一种不好的做法,可能有更好的解决办法。你需要做什么?把代码放入数据库从来不是一个好主意。代码应该毫无例外地存储在文件系统中。我正在存储网站的html和PHp编码。@pekka我正在输入PHp编码以提供自定义选项和内容。这就是我想的结果。有更好的方法吗?我是新来的,所以我认为使用db作为代码的存储空间是动态服务代码的方法。现在我已经在每一个页面上粘贴了html,我想使用db我可以更新它一次,并在任何地方进行回显。所以我想我也可以用这种方法进行定制和更新。如果这不安全,我还能做什么?谢谢数据库主要用于存储数据,例如每页的原始文本。主题和其他代码部分通常保存为磁盘上的文件。也许避免eval的最大原因是让用户任意运行PHP代码所涉及的危险——通过只允许从文件中运行PHP,您可以获得FTP服务器提供的安全性,并且在编写web代码时不必担心这些问题。因此,我正以正确的方式将html粘贴到每个页面上,然后仅仅使用php。为什么这很危险?用户将不会更新此内容。只有我会把东西放在表中。在这种情况下,最好使用include()函数并进行自定义选项和功能。。。
eval(unserialize(base64_decode($_SESSION['functions'])));