-1

MAMP ではコードを完全に実行できますが、ホストゲーター サーバーでは実行できません。サーバーでは、実行を防ぐためにテキストが自動的にエスケープされます。

<?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コードを実行できるため、非常に危険です。したがって、その使用はお勧めしません。この構成を使用する以外に選択肢がないことを注意深く確認した場合は、事前に適切に検証せずに、ユーザーが提供したデータを渡さないように特に注意してください。

evalホスティングプランのphpinfo()を確認すると、ディレクティブの下にリストされていることがわかりますdisable_functions。これは、使用できないことを意味します。

于 2013-02-19T02:55:02.737 に答える
0

おそらくで無効evalになっていphp.iniます。使用する必要がないので、これは良いことですeval()...特に非常に危険な方法で使用する必要はありません。

@すべての前でそれらを抑制していなかった場合、エラーが表示されます。

PHPの遊び場にはコードパッドを使用することをお勧めします。

于 2013-02-19T02:43:21.480 に答える