Запуск скрипта .bat с веб-страницы .php

Я пытаюсь загрузить веб-страницу на свой собственный сервер, который будет запускать скрипт .bat (на том же сервере), как показано ниже.

Когда я обращаюсь к странице с именем test.php, она отображает «СДЕЛАЙТЕ ЭТО!» кнопку, и когда я нажимаю ее, она просто отображает содержимое файла .bat, а не выполняет его на сервере...

Что мне нужно настроить на сервере, как я полагаю, в настройках PHP, чтобы заставить его запускать скрипт, а не просто отображать его на веб-странице?

Что касается вопроса, я доволен последствиями для безопасности того, что я делаю.

Я использую Windows-машину с IIS и PHP.

<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>

person omega1    schedule 03.02.2014    source источник


Ответы (1)


Я думаю, что строка echo exec('c:\scripting.bat'); вызывает у вас проблемы. Попробуйте просто выполнить его без оператора echo.

Если вы пытаетесь увидеть вывод функции, вы должны использовать второй параметр функции: &$output, в соответствии с самой документацией. см. документацию здесь.

Я надеюсь, что это будет полезно для вас! :D

person Dennis Braga    schedule 03.02.2014
comment
Спасибо, эхо вызывало отображение вывода на веб-странице, но проблема с тем, что он не работал, заключалась в том, что .bat, по-видимому, должен находиться в папке inetpub, где находится страница... Спасибо! - person omega1; 03.02.2014
comment
та же проблема для меня. ты исправил свою проблему? вызвать bat-файл с веб-страницы? @омега1 - person Karthi; 22.02.2017
comment
Здравствуйте, да, я решил это, файл .bat должен был находиться в папке inetpub, и тогда это сработало. Я не знаю, может ли это работать, если папка .bat находится в другом месте, но это решило мои потребности. - person omega1; 26.02.2017
comment
И в коде моего вопроса удалите оператор эха перед командой exec. - person omega1; 26.02.2017