2014-01-11 94 views
0

我有這個腳本來啓動一個bat文件,它會但啓動後它剛剛崩潰的網頁,我需要腳本重定向用戶到完成後的.bat頁面開始...PHP啓動.bat然後重定向

<?php 

exec('c:\WINDOWS\system32\cmd.exe /c START C:\Users\Administrator\Desktop\VGBR\steamapps\common\GarrysModDS\Start.bat'); 

?> 

<?php 
$var="Start"; 
echo "Starting..."; 
echo $var; 
header("Location: done.php"); 
exit; 
?> 

這是我這麼遠......

+1

很肯定你不能有空格或當你想重定向呼應。 –

回答

0

的原因是,當你使用echo功能PHP HAVE送頭到客戶端,所以任何後續標題將會發送而不是

要更正要麼您刪除echoes(因爲客戶端不會看到它們),或者您刪除了header()並添加了一個執行重定向的JavaScript。

編輯:
作爲戴夫陳說,你不應該具有與<?PHP標籤外的腳本之間的空白,因爲它被髮送到客戶端(再次,用頭)。

要做到你的要求,執行腳本的方式:

<?php 
exec('c:\WINDOWS\system32\cmd.exe /c START C:\Users\Administrator\Desktop\VGBR\steamapps\common\GarrysModDS\Start.bat > NUL'); 

header('Location: /done.php'); 
die(); 
?> 

EDIT 2
如果PHP懸垂挺括,這是因爲它在等待那個蝙蝠應用程序返回的東西。在這種情況下,檢查以下StackOverflow的問題:
php exec command (or similar) to not wait for result
Running a PHP "exec()" in the background on Windows?

+0

我這樣做,它打開它,但無限期保持打開在一個選項卡中...我需要該選項卡重新定向 –

+0

我編輯了代碼。現在就試試。如果它不起作用,這可能意味着該exec繼續運行,並且php正在等待它返回一些東西,然後繼續執行 – jgabriel

+0

在這種情況下,請檢查此答案:http://stackoverflow.com/questions/3819398/php-exec -command-or-similar-to-wait-for-result – jgabriel