За последние 24 часа нас посетили 40753 программиста и 1725 роботов. Сейчас ищут 623 программиста ...

php & shell-script

Тема в разделе "Прочие вопросы по PHP", создана пользователем shreck, 14 авг 2008.

  1. shreck

    shreck Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Есть shell-script который добавляет пользователя в smbserver
    Вызов скрипта происходит следующим образом:
    Код (Text):
    1.  
    2. root@localhost# addU.sh username
    3. Введите пароль: ***
    4. Повторите пароль: ***
    5. Пользователь username добавлен.
    Задача:
    Написать html-форму для добавления пользователя.

    Проблема:
    Не знаю как передать параметры из формы в shell-script
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  3. Anonymous

    Anonymous Guest

    Имхо, скрипт должен уметь запускаться с ключом для ввода пароля. Проще поправить его.
     
  4. shreck

    shreck Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Sergey89
    Отлично, но он скрипт потом пароль спрашивает, причем 2 раза, как с этим быть?
    upd: Горбунов Олег оказался проворнее
     
  5. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  6. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Может еще на переменные окружения стоит обратить внимание?...
     
  7. shreck

    shreck Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Sergey89

    Навоял вот что, как работать будет не знаю...

    PHP:
    1.  
    2. <?
    3. function auth($user, $passwd, $confirm) {
    4.   $descriptorspec = array(
    5.      0 => array("pipe", "r"),  
    6.      1 => array("pipe", "w"),
    7.      2 => array("file","/dev/null", "w")
    8.   );
    9.  
    10.   $process = proc_open("/home/user/addU.sh ".escapeshellarg($user), $descriptorspec, $pipes);
    11.  
    12.   if (is_resource($process)) {
    13.  
    14.     fwrite($pipes[0],$passwd);
    15.     echo fgets($pipes[1], 4096);
    16.     fwrite($pipes[0],$confirm);
    17.     echo fgets($pipes[1], 4096);
    18.     fclose($pipes[0]);
    19.     fclose($pipes[1]);
    20.  
    21.     $return_value = proc_close($process);
    22.  
    23.     echo $return_value;
    24.   }
    25. }
    26. ?>
    27.  
    З.Ы.: чет хрень какая-то...