2011-07-08 97 views
1

我有一個.bat文件位於與我的php文件名爲start.bat相同的文件夾中 我希望在點擊提交時執行.bat文件按鈕。嘗試從PHP腳本執行.bat文件時服務器無響應

我的PHP文件如下所示:

<?php 
if(isset($_POST['submit'])) 
{ 
echo exec('start.bat'); 
echo "Done!"; 
} else { 
// display the form 
?> 
<form action="index.php" method="post"> 
<input type="submit" name="submit" value="Start Server"> 
</form> 
<?php 
} 
?> 

當我點擊網頁進入「等待服務器...」 的永無止境的循環按鈕,它不會運行該批處理文件。

是否有東西,像我需要設置批處理文件運行,或者我做錯了代碼明智的權限?

感謝您的快速幫助,因爲我需要今天解決此問題!

+0

您是否檢查過服務器的響應?您可以使用谷歌瀏覽器的網絡檢查器來檢查服務器響應的細節並進行更全面的調試。 – Chiguireitor

+0

你知道你的服務器上使用了哪個操作系統嗎? – Eldros

回答

0

刪除echo之前exec它應該工作。

+0

我也試過,同樣的情況仍然發生。 – novs12

0

首先,作爲一種良好的習慣,您應該始終使用絕對路徑而不是相對路徑。系統可能在另一個地方尋找start.bat。你永遠不會知道自動呼叫的相對位置。我可以告訴你一些擦掉system32路徑的熱鬧商店。

二,exec()代表可執行文件。根據您的系統設置,bat文件可能無法識別爲可執行文件。 .bat擴展名用於批處理文件的DOS時間。自Windows NT使用.cmd以來的Windows系統。

在你的Windows Web服務器打開命令提示符,然後鍵入

set PATHEXT 

在那裏,你會看到.BAT。如果設置了這個,那麼.bat應該使用exec()運行。

如果你沒有看到蝙蝠,正如你可以先火起來的主機,一個bat文件是CMD另一個很好的做法。

exec('cmd /c c:\www\start.bat'); 

您也可以嘗試system()而不是exec()。

+0

我想所有這一切,並且服務器確實有.bat.The服務器仍然起到同樣的,只是什麼都不做,我的瀏覽器說「等待服務器...」 – novs12

+0

好吧,那就只是一件事沒有做。向我們展示start.bat文件的內容 –

+0

從dedi運行時,它運行良好。 – novs12

相關問題