Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка формы на bash скрипт 
:(
    Опции темы
atlant1s
Дата 30.10.2013, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.10.2007
Где: Одесса

Репутация: нет
Всего: нет



Здравствуйте. Имею следующую ситуацию:
Есть у меня скрипт на bash, который получает IP адрес, указанный мною в HTML форме, далее скрипт выполняется и в случае успеха, он (bash-скрипт) генерирует ответ (в виде текста). Сейчас это организовано и работает так:

index.html
Код

<html>
<head>
<title>Install equipment</title>
<style>
    body {}
</style>
</head>
<body>

<form method="post" action="process.php">
    <input type="text" name="ipaddr" placeholder="IP адрес коммутатора" size="30" autofocus="autofocus" value="172.16.141.60" />
    <input type="text" name="vlan" placeholder="Номер VLAN" size="15" />
    <select name="task">
        <option value="1">Check port by VLAN</option>
        <option value="2">Fix ISM</option>
        <option value="3">Fix SNTP</option>
        <option value="4">Get Relay</option>
        <option value="5">Install new equipment</option>
    </select>
    <input type="submit" />
</form>
</body>
</html>


process.php
Код

<?php

// config
$script_path = '/usr/local/sbin/web/';

// open folder
chdir($script_path);

// set param
$switch_ip = (isset($_POST['ipaddr'])) ? htmlspecialchars($_POST['ipaddr']) : '';
$vlan = (isset($_POST['vlan'])) ? htmlspecialchars($_POST['vlan']) : '';
$task = (isset($_POST['task'])) ? $_POST['task'] : '';

switch ($task) {
case 1:
    $request = "./check_port_by_vlan.sh $vlan";
    break;
case 2:
    $request = "./fix_ism.sh $switch_ip";
    break;
case 3:
    $request = "./fix_sntp.sh $switch_ip";
    break;
case 4:
    $request = "./get_relay.sh $vlan";
    break;
case 5:
    $request = "./install_new_equipment.sh $switch_ip $vlan";
    break;
}

// script request
$new_request = escapeshellcmd($request);

// run
system($new_request);

?>


Проблема: после того, как скрипт выполнится, страница редиректится на process.php, где отрисовывается ответ от bash-скрипта. Это не очень удобно.

Как сделать так, чтобы результат выводится в index, без перехода на process.php? Сперва держал всё в одном файле, но была проблема с обновлением страницы - скрипт запускался сразу, т.к. имел в $_POST старые параметры. unset() на них не убивал.

Пытался через AJAX отправлять запросы - работает, но не знаю как вытащить результат (текст) из process.php и отрисовать его на index.html
PM MAIL ICQ Skype   Вверх
SlipKnot
Дата 30.10.2013, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 28.5.2008

Репутация: нет
Всего: -1



в конце process.php перенаправляемся обратно на index и стопаемся. по идее должно сработать
Код

header("Location: http://".$_SERVER['HTTP_HOST'].'/'.'index.php'); 
exit;

PM   Вверх
atlant1s
Дата 30.10.2013, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.10.2007
Где: Одесса

Репутация: нет
Всего: нет



SlipKnot, меня интересует ответ от скрипта, который после выполнения генерируется на process.php.
С AJAX наверное слишком сложно. Подскажите иначе, если я объединю эти два файла - как мне делать unset _POST переменных? Чтобы при обновлении страницы оно не запускалось с предыдущими параметрами
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0872 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.