我试图转到加载页面,然后执行powershell脚本。但不幸的是,我无法让它发挥作用。当我转到页面时,它会自动转到脚本并将我重定向到失败页面的成功。 我试图在重定向后进行休眠,但它只是等待几秒钟,然后运行脚本并将我重定向到html页面。
header('Location: /loading.html');
include ("file\where\the\variable\comes\from.php");
$s = shell_exec("powershell path\\to\\script.ps1 '$variable'< NUL");
if (strpos($s, 'True') === false) {
header('Location: /succes.html');
}
else{
header('Location: /failed.html');
}
答案 0 :(得分:1)
在此结构中无法加载页面,因为您的页面仅在文件加载完成时显示。如果您通过AJAX请求运行include / shell,它会。下面的解决方案是索引页面(loading.html),它对文件request.php运行AJAX请求,并将其内容复制到loading.html的内容中。
<强> loading.html 强>
<!-- Your loading.html content --->
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
$.post( "request.php", function( data ) {
$( "body" ).html( data );
});
</script>
<强> request.php 强>
include ("file\where\the\variable\comes\from.php");
$s = shell_exec("powershell path\\to\\script.ps1 '$variable'< NUL");
if (strpos($s, 'True') === false) {
echo file_get_contents('succes.html');
}
else {
echo file_get_contents('failed.html');
}