我正在尝试在我自己的服务器上加载一个网页,该网页将运行.bat脚本(在同一台服务器上),如下所示。
当我访问名为test.php的页面时,它会显示“DO IT!”按钮,当我按下它时,它只显示.bat文件上的内容,而不是在服务器上执行...
我需要在服务器上配置什么,我假设在PHP设置中,强制它运行脚本而不是仅仅在网页上显示它?
出于问题的目的,我对我正在做的事情的安全影响感到高兴。
我正在使用IIS和PHP运行Windows机器。
<html>
<head>
<title>Restarting</title>
</head>
<body>
<?php
if(isset($_POST['submit']))
{
echo exec('c:\scripting.bat');
echo "Done!";
} else {
// display the form
?>
<form action="" method="post">
<input type="submit" name="submit" value="DO IT!">
</form>
<?php
}
?>
</body>
</html>
答案 0 :(得分:2)
我认为echo exec('c:\scripting.bat');
行导致了您的问题。尝试在没有echo
语句的情况下执行它。
如果您试图查看函数的输出,则必须使用第二个函数参数:&$output
,根据文档本身。 See it in the docs here.
我希望它对你有用! :d