我可以在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>
答案 0 :(得分:2)
来自php文档:(由于标记限制而减去其格式)
http://www.php.net/manual/en/function.eval.php
注意
eval()语言构造非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已经仔细验证除了使用此构造之外没有其他选择,请特别注意不要将任何用户提供的数据传递到其中,而不事先正确验证它。
如果您检查主机方案的phpinfo(),您会看到eval
指令下列出了disable_functions
,这意味着它无法使用。
答案 1 :(得分:0)
他们可能在eval
中停用了php.ini
。哪个好,因为你永远不需要使用eval()
...尤其不要以非常危险的方式使用它。
如果您没有在所有内容前面使用@
来压制它们,就会看到错误。
我建议将codepad用于php操场。