重定向然后执行

时间:2016-11-30 09:32:30

标签: php powershell redirect shell-exec

我试图转到加载页面,然后执行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'); 
        }

1 个答案:

答案 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'); 
}