Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: PHP отправка кода в bash
Форумы портала PHP.SU » » Работа с файловой системой и файлами » PHP отправка кода в bash

Страниц (1): [1]
 

1. k0ma - 08 Мая, 2015 - 14:00:44 - перейти к сообщению
надо чтобы php при нажатии на клавишу
передавал в bash некую команду.
Подскажите где и как включить дебаг?
на стороне ОС или на странице кода? и вернет ли он ошибку на страницу вообще?
Либо, как написать команду с переменной, которую дальше дать на исполнение из файла?

передать данную переменную в скрипдопустим
CODE (htmlphp):
скопировать код в буфер обмена
  1. /usr/home/1/reboot.sh

и в скрипте типа
CODE (htmlphp):
скопировать код в буфер обмена
  1. reboot -r -t $a

В идеале конечно труднее, но суть я думаю понятна.
2. dcc0 - 08 Мая, 2015 - 14:29:40 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  <?
  2. $a="/etc/passwd";
  3.   echo exec("cat $a");
  4.  ?>
3. k0ma - 22 Мая, 2015 - 11:54:28 - перейти к сообщению
надо передать команду сразу в bash, без вызова каких либо файлов, в которых данная команда записана!
СРАЗУ в bash, и потом еще в РНР вывести на экран результат данной команды.
4. dcc0 - 22 Мая, 2015 - 12:02:57 - перейти к сообщению
Пример выше что по вашему делает?
(Добавление)
Вообще system вываливает все на страницу.
5. k0ma - 22 Мая, 2015 - 12:25:00 - перейти к сообщению
ок
CODE (htmlphp):
скопировать код в буфер обмена
  1. $bb=system('mpc --host Pi6MPD-Pass@192.168.0.6 volume');
  2. echo "<input form name='volume' value=".$bb.">";

на выходе пусто, а должно быть volume:100%

попробывал
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo "<input form name='volume' value=".$bb,print_r($out).">";

на выходе слово Array...
(Добавление)
Добрые люди выручили
CODE (htmlphp):
скопировать код в буфер обмена
  1. system('ping 127.0.0.1');
  2. $result=ob_get_contents();
  3. gettype($result);
  4. var_dump($result);


возвращается строка длинной в 488 строк, подскажите как вычленить из этой строки только то что мне нужно? а остальное вырезать при выводе на экран?
6. DeepVarvar - 22 Мая, 2015 - 14:36:53 - перейти к сообщению
Иди доки почитай по пыховым вызовам экзека и шелла. Там все есть, в том числе и возврат ответа.
А шо ты там вообще пилишь?
Веб-гуй для мпд?
Так их есть же. Гугли.
(Добавление)
k0ma пишет:
Добрые люди выручили
Это какие-то злые люди.
Вот что добрые должны были показать:
PHP:
скопировать код в буфер обмена
  1. exec('ping 127.0.0.1 -c 3', $result);
  2. var_dump($result);
7. k0ma - 22 Мая, 2015 - 16:21:22 - перейти к сообщению
попросили допилить недостающие кнопки и функции для веб мпд,вот и пилю...
из вашего кода массив вылазит, а там сразу строка...
Может быть поможете? Улыбка
Хочу на 6 адресов приминить кучу функций, ну и пока что пишу все для каждой в отдельности, подскажите как запихнуть все в цикл и обработать для каждого адреса?

CODE (htmlphp):
скопировать код в буфер обмена
  1. $col='0';
  2. exec('/usr/local/bin/mpc --host Pi1MPD-Pass@192.168.0.1 volume',$result);
  3. $rest=trim(substr(implode($result),-4,4));
  4. echo "<table  cellpadding='20' border='1'>";
  5. echo "<tr>";
  6. echo "<td align='right' valign='top' width='400' ROWSPAN='10'>";
  7. echo "<table cellpadding='20' border='1'><tr><th>Доступ</th><th>Off</th><th>On</th><th>Volume</th></tr>";
  8.  
  9. $port=array(22);
  10. foreach($port as $p){
  11.         ##############     1    #############################################
  12. if (!$socket = @fsockopen("172.17.12.17", $p, $errno, $errstr, $col))
  13.         {
  14.         echo "<tr><td><font size='3'color='red'>1-Не доступен</font></td>
  15.                 <td><input type='checkbox' class='checkbox' name='1off' value='0'></td>
  16.                 <td><input type='checkbox' class='checkbox' name='1on' value='1'></td>
  17.                 <td><input form name='volume' value='$rest'></td></tr>";
  18.         }
  19.         else
  20.         {
  21.           echo "<tr><td><font size='3' color='green'>1-Доступен</font></td>
  22.                         <td><input type='checkbox' class='checkbox' name='1off' value='0'></td>
  23.                         <td><input type='checkbox' class='checkbox' name='1on' value='1'></td>
  24.                         <td><input form name='volume' value='$rest'></td></tr>";
  25.                 fclose($socket);
  26.         }

Вот таких 6 шт, поскажите как сделать одну функию и по этой функции все 6 адресов пускать? Суть в том, чтобы сделать 6 сообщений про адреса, и потом еще менять их волуме(звук) и нажимая на кнопку обратно отдавать для каждого из адресов свой звук.
8. DeepVarvar - 22 Мая, 2015 - 16:54:51 - перейти к сообщению
На, и не парься: http://www[dot]ympd[dot]org/
9. k0ma - 22 Мая, 2015 - 17:00:09 - перейти к сообщению
А как же практика? =(
10. DeepVarvar - 22 Мая, 2015 - 17:06:50 - перейти к сообщению
Я вот свой сорс-клиент (ну по типу мпд, только узко заточеный под свои задачи) потихоньку на сях пишу, у него сразу есть серверный сокет принимающий команды который работает по обычному хттп протоколу.
Вот это -- практика.

А ты тут в цикле и тегах таблицы запутался.
Бросай это дело.
Хотя нет, не бросай, продолжай.
Но только сам.
Годик-другой попишешь и станет уже полегче.
11. k0ma - 22 Мая, 2015 - 18:04:06 - перейти к сообщению
Цитата:
....потихоньку на сях пишу....
шта? Не понял
12. dcc0 - 22 Мая, 2015 - 19:29:18 - перейти к сообщению
Цитата:
на сях пишу

На чистом ? Крутой... Хорошо

Цитата:

А как же практика? =(

Учебник прочитал? С функциями, массивами, циклами разобрался? Лямбда-функция не вызывает вопросов? Что такое ООП - понятно ? = ) Велосипедов 10-к сделал, а теперь пойми, что для реальной работы уже почти все написано, нужно только редактировать.. =)

И теперь можешь бросить все это дело и сесть учить другой язык... С# Fasm,
Haskell.
13. k0ma - 22 Мая, 2015 - 19:48:00 - перейти к сообщению
В том и дело, куча учебников не дочитана, велосипеды не написаны, функции до сих пор из гугла вспоминаю.. нужна практика, вам не надо,а мне надо.
CODE (htmlphp):
скопировать код в буфер обмена
  1. $port=array(22);
  2. $col='0';
  3. $a1=$_POST[rest1];
  4. $a2=$_POST[rest2];
  5. $a3=$_POST[rest3];
  6. $a4=$_POST[rest4];
  7. $a5=$_POST[rest5];
  8. $a6=$_POST[rest6];
  9.  
  10. exec('/usr/local/bin/mpc --host Pi1MPD-Pass@192.168.0.1 volume',$result1);
  11. $rest1=str_replace("%","",trim(substr(implode($result1),-4,4)));
  12. exec('/usr/local/bin/mpc --host Pi2MPD-Pass@192.168.0.2 volume',$result2);
  13. $rest2=str_replace("%","",trim(substr(implode($result2),-4,4)));
  14. exec('/usr/local/bin/mpc --host Pi3MPD-Pass@192.168.0.3 volume',$result3);
  15. $rest3=str_replace("%","",trim(substr(implode($result3),-4,4)));
  16. exec('/usr/local/bin/mpc --host Pi4MPD-Pass@192.168.0.4 volume',$result4);
  17. $rest4=str_replace("%","",trim(substr(implode($result4),-4,4)));
  18. exec('/usr/local/bin/mpc --host Pi5MPD-Pass@192.168.0.5 volume',$result5);
  19. $rest5=str_replace("%","",trim(substr(implode($result5),-4,4)));
  20. exec('/usr/local/bin/mpc --host Pi6MPD-Pass@192.168.0.6 volume',$result6);
  21. $rest6=str_replace("%","",trim(substr(implode($result6),-4,4)));
  22. echo "<table  cellpadding='20' border='1'>";
  23. echo "<tr>";
  24. echo "<td align='right' valign='top' width='400' ROWSPAN='10'>";
  25. echo "<table cellpadding='20' border='1'><tr><th>On\Off</th><th>Off</th><th>On</th><th>Volume</th></tr>";
  26.  
  27. #if (empty($_POST['$rest1']) && empty($_POST['$rest2']) && empty($_POST['$rest3']) && empty($_POST['$rest4']) && empty($_POST['$rest5']) && empty($_POST['$rest6']) && !isset($_POST[submit])){
  28.  
  29. if (!isset($_POST['submit'])){
  30. foreach($port as $p){
  31.         ##############     1    #############################################
  32. if (!$socket = @fsockopen("192.168.0.1", $p, $errno, $errstr, $col))
  33.         {
  34.         echo "<form action='index.php' method='post'>
  35.             <tr><td><font size='3'color='red'>1-Down</font></td>
  36.                 <td><input type='checkbox' class='checkbox' name='1off' value='0'></td>
  37.                 <td><input type='checkbox' class='checkbox' name='1on' value='1'></td>
  38.                 <td><input type='text' name='volume1' value='$rest1'></td></tr>";
  39.         }
  40.         else
  41.         {
  42.           echo "<tr><td><font size='3' color='green'>1-Up</font></td>
  43.                         <td><input type='checkbox' class='checkbox' name='1off' value='0'></td>
  44.                         <td><input type='checkbox' class='checkbox' name='1on' value='1'></td>
  45.                         <td><input type='text' name='volume1' value='$rest1'></form></td></tr>";
  46.                 fclose($socket);
  47.         }
  48.         ##############     2    #############################################
  49.         if (!$socket = @fsockopen("192.168.0.2",$p, $errno, $errstr, $col))
  50.         {
  51.           echo "<tr><td><font size='3' color='red'>2-Down</font></td>
  52.                         <td><input type='checkbox' class='checkbox' name='2off' value='0'></td>
  53.                         <td><input type='checkbox' class='checkbox' name='2on' value='1'></td>
  54.                         <td><input type='text' name='volume2' value='$rest2'></form></td></tr>";
  55.         }
  56.         else
  57.         {
  58.           echo "<tr><td><font size='3' color='green'>2 - Up</font></td>
  59.                         <td><input type='checkbox' class='checkbox' name='2off' value='0'></td>
  60.                         <td><input type='checkbox' class='checkbox' name='2on' value='1'></td>
  61.                         <td><input type='text' name='volume2' value='$rest2'></form></td></tr>";
  62.                 fclose($socket);
  63.         }
  64.         ##############     3    #############################################
  65.         if (!$socket = @fsockopen("192.168.0.3", $p, $errno, $errstr, $col))
  66.         {
  67.           echo "<tr><td><font size='3' color='red'>3-Down</font></td>
  68.           <td><input type='checkbox' class='checkbox' name='3off' value='0'></td>
  69.           <td><input type='checkbox' class='checkbox' name='3on' value='1'></td>
  70.           <td><input type='text' name='volume3' value='$rest3'></form></td></tr>";
  71.         }
  72.         else
  73.         {
  74.           echo "<tr><td><font size='3' color='green'>3-Up</font></td>
  75.           <td><input type='checkbox' class='checkbox' name='3off' value='0'></td>
  76.           <td><input type='checkbox' class='checkbox' name='3on' value='1'></td>
  77.           <td><input type='text' name='volume3' value='$rest3'></form></td></tr>";
  78.                 fclose($socket);
  79.         }
  80.         ##############     4    #############################################
  81.         if (!$socket = @fsockopen("192.168.0.4", $p, $errno, $errstr, $col))
  82.         {
  83.           echo "<tr><td><font size='3' color='red'>4-Down</font></td>
  84.           <td><input type='checkbox' class='checkbox' name='4off' value='0'></td>
  85.           <td><input type='checkbox' class='checkbox' name='4on' value='1'></td>
  86.           <td><input type='text' name='volume4' value='$rest4'></form></td></tr>";
  87.         }
  88.         else
  89.         {
  90.           echo "<tr><td><font size='3' color='green'>4-Up</font></td>
  91.           <td><input type='checkbox' class='checkbox' name='4off' value='0'></td>
  92.           <td><input type='checkbox' class='checkbox' name='4on' value='1'></td>
  93.           <td><input type='text' name='volume4' value='$rest4'></form></td></tr>";
  94.                 fclose($socket);
  95.         }
  96.         ##############     5    #############################################
  97.         if (!$socket = @fsockopen("192.168.0.5", $p, $errno, $errstr, $col))
  98.         {
  99.           echo "<tr><td><font size='3' color='red'>5-Down</font></td>
  100.           <td><input type='checkbox' class='checkbox' name='5off' value='0'></td>
  101.           <td><input type='checkbox' class='checkbox' name='5on' value='1'></td>
  102.           <td><input type='text' name='volume5' value='$rest5'></form></td></tr>";
  103.         }
  104.         else
  105.         {
  106.           echo "<tr><td><font size='3' color='green'>5-Up</font></td>
  107.           <td><input type='checkbox' class='checkbox' name='5off' value='0'></td>
  108.           <td><input type='checkbox' class='checkbox' name='5on' value='1'></td>
  109.           <td><input type='text' name='volume' value='$rest5'></form></td></tr>";
  110.                 fclose($socket);
  111.         }
  112.         ##############     6    #############################################
  113.         if (!$socket = @fsockopen("192.168.0.6", $p, $errno, $errstr, $col))
  114.         {
  115.           echo "<td><font size='3' color='red'>6-Down</font></td>
  116.           <td><input type='checkbox' class='checkbox' name='6off' value='0'></td>
  117.           <td><input type='checkbox' class='checkbox' name='6on' value='1'></td>
  118.           <td><input type='text' name='volume6' value='$rest6'></form></td></tr>";
  119.         }
  120.         else
  121.         {
  122.           echo "<td><font size='3' color='green'>6-Up</font></td>
  123.           <td><input type='checkbox' class='checkbox' name='6off' value='0'></td>
  124.           <td><input type='checkbox' class='checkbox' name='6on' value='1'></td>
  125.           <td><input type='text' name='volume6' value='$rest6'></form></td></tr>";
  126.                 fclose($socket);
  127.         }
  128. }
  129. }else{
  130. echo "1212";
  131. exec('/usr/local/bin/mpc --host Pi1MPD-Pass@192.168.0.1 volume $a1');
  132. exec('/usr/local/bin/mpc --host Pi2MPD-Pass@192.168.0.2 volume $a2');
  133. exec('/usr/local/bin/mpc --host Pi3MPD-Pass@192.168.0.3 volume $a3');
  134. exec('/usr/local/bin/mpc --host Pi4MPD-Pass@192.168.0.4 volume $a4');
  135. exec('/usr/local/bin/mpc --host Pi5MPD-Pass@192.168.0.5 volume $a5');
  136. exec('/usr/local/bin/mpc --host Pi6MPD-Pass@192.168.0.6 volume $a6');
  137.  
  138. }
  139.  
  140. echo "<tr ><td COLSPAN='4' align='right'><input type='submit' name='submit' value='Change'></form></td></tr>";
  141. echo "</table>";
  142. echo "</td>";
  143. echo "</tr>";
  144. echo "<td ROWSPAN='10' align='center' valign='top' width='400' >";

подсобите?
ЗЫ: что такое сях? 1с?
14. dcc0 - 22 Мая, 2015 - 22:06:33 - перейти к сообщению
Цитата:
ЗЫ: что такое сях?

Боюсь, что нет. Скорее речь о c# и c++
15. k0ma - 23 Мая, 2015 - 07:40:03 - перейти к сообщению
Подскажите почему в Windows среде может отрабатывать команда,а в freebsd(linux) просто не реагирует на нажатие кнопки, 2 одинаковых файла, одинаковый код там и там.
CODE (htmlphp):
скопировать код в буфер обмена
  1. if (!isset($_POST[submit])){
  2. <......куча кода.....>
  3. echo "<form action='vol.php' method='post'>
  4. <......куча кода.....>
  5. echo "<tr ><td COLSPAN='4' align='right'>
  6. <input type='submit' name='submit' value='Change'>
  7. </form></td></tr>";


коротко и не полно, но суть я думаю ясна.
что првоерить? настройки рнр?

 

Powered by ExBB FM 1.0 RC1