#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"]))
.
Попробуйте это и дайте нам знать.