-1

我可以在 MAMP 上完美执行代码,但不能在我的 hostgator 服务器上执行。在服务器上,文本会自动转义以防止执行。

<?php 
    if (@isset($_POST['code'])) {
        @$code = $_POST['code'];
        @eval($code);
    }
    ?>
    <head>
        <style>
            textarea{
                font-family: verdana;
                font-size:20px;
                color: #2799a0;
            }
            input[type="submit"] {
                width: 200px;
                height: 100px;
                font-size: 30px;
            }
        </style>
        <title>PHP Playground</title>
    </head>
    <form action="playground.php" method="POST">
        <textarea name="code" cols="100" rows="20"><?php echo $_POST['code']; ?></textarea><br><br>
        <input type="submit" value="Execute">
    </form>
4

2 回答 2

2

来自 php 文档:(由于 markdowm 限制而减去它们的格式)

http://www.php.net/manual/en/function.eval.php

警告

eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

如果您检查托管计划的 phpinfo(),您将看到该指令eval列在disable_functions指令下,这意味着它不能使用。

于 2013-02-19T02:55:02.737 回答
0

他们可能evalphp.ini. 这很好,因为你永远不需要使用eval()......尤其是不要以非常危险的方式使用它。

如果你没有@在所有东西的前面压制它们,你会看到一个错误。

我建议使用键盘作为 php 游乐场。

于 2013-02-19T02:43:21.480 回答