Базовая PHP-форма отправки PowerShell

#php #forms #powershell #submit

#php #формы #powershell #Отправить

Вопрос:

Я пытаюсь создать базовую форму для запуска сценариев PowerShell. Я осмотрелся, и есть отличное решение: Робин запускает сценарии PowerShell с использованием IIS и PHP. Источник: http://theboywonder.co.uk/2012/07/29/executing-powershell-using-php-and-iis / Я запустил тест с его собственным кодом, но изменил переменную path с помощью моего собственного PS-скрипта, и все прошло нормально.

Сейчас я пытаюсь создать только базовую форму, в которой есть функция отправки, которая onclick запустит сценарий PS и вернет результаты обратно на ту же страницу.

Вот слегка измененный PHP-код, который я взял из его примера.

 <?php
// If there was no submit variable passed to the script (i.e. user has visited the page without clicking submit), display the form:
if(!isset($_POST["submit"]))
{
?>
<form name="testForm" id="testForm" action="pstest4.php" method="post">
   <input type="submit" name="submit" id="submit" value="Do stuff" />
</form>
<?php    
}
// Else if submit was pressed, check if all of the required variables have a value:
elseif((isset($_POST["submit"]))
{
// Get the variables submitted by POST in order to pass them to the PowerShell script:
// Path to the PowerShell script. Remember double backslashes:
$psScriptPath = "\\appswebfront\Scripts\mock.ps1";

// Execute the PowerShell script, passing the parameters:
$query = shell_exec("powershell -command $psScriptPath < NUL");
echo $query;    
}
?>
  

Я запускаю это и получаю:

Parse error: syntax error, unexpected ';' in \APPSWEBFRONTINETPUBwwwrootpstest4.php on line 31

Строка 31 в моем предварительном просмотре начинается с $psScriptPath .

Конечно, если я удалю точку с запятой, он просто перейдет к следующему, вплоть до того момента, когда он скажет unexpected $query' (T_VARIABLE) .

Я уверен, что где-то есть неправильный синтаксис, но, поскольку я новичок в PHP, я не знаю, где я ошибаюсь.

В конце дня мне нужна страница, на которой отображается форма, когда кнопка отправки не нажата / не опубликована, и при нажатии она запускает сценарий PS и возвращает вывод обратно на ту же страницу.

Пожалуйста, помогите.

Ответ №1:

У вас слишком много скобок в этой строке elseif((isset($_POST["submit"]))

Должно быть elseif(isset($_POST["submit"])) .

Попробуйте это и дайте нам знать.