LINUX.ORG.RU

[php] передать содержимое формы на исполнение скрипту

 


0

1

Приветствую всех, появилась задача создать web-интерфейс для закачивания видео с youtube и аналогичных видеохостингов. Планируется использовать vacuumvideosript или аналоги (Clive youtube-dl). Проблема в том, что сам не программирую, за исключением небольших скриптов на bash. При всем этом могу разобрать синтаксис и принцип работы того же PHP, и, при наличии примера, выправить в нужные мне рамки. Сейчас запнулся на этапе поиска скрипта который «передает bash скрипту содержимое формы». Никак не удается нагуглить что-либо действенное, возможно неправильно составляю запрос для поиска. Основная идея чтобы на страничке имелась форма для ввода ссылки на видеохостинг и кнопка выполнить. Может у кого завалялся рабочий пример, или путевая ссылка..


Ну что вы все, не стесняемся, можно и на JavaScript :)

sdm
() автор топика

Форма для ввода ссылки: <form><input type=«text» name=«link»><input type=«submit»>

PHP: <? system(«wget » . $_GET['link'] . " -O output " ); echo file_get_contents(«output»);

Нечто вроде такого?

amomymous ★★★
()
Ответ на: комментарий от helios

Замечания приняты, я просто накидал общую схему, чтобы убедиться, что ТС хочет именно это сделать.

Еще надо сделать кэширование, чтобы не перекачивать ссылку 2-й раз, возможное преобразование ссылки (ссылка на страницу -> ссылка на видеофайл)

amomymous ★★★
()
Ответ на: комментарий от amomymous

Нагуглилась функция shell_exec

<?php
$command = 'ls -lpas';
// Execute the shell command
$shellOutput = shell_exec($command.' > /dev/null; echo $?');
//return execute status;
echo trim($shellOutput);
?>
На сколько она идеологически верная, по сравнению с той же exec?

sdm
() автор топика
Ответ на: комментарий от amomymous

(ссылка на страницу -> ссылка на видеофайл)

Это должен выполнять vacuumvideosript, но для начала ему необходимо просто передать ссылку.

sdm
() автор топика
Ответ на: комментарий от sdm

Так верно?

<http>
<form><input type="text" name="link"><input type="submit"></form>
</http>

<?php
    shell_exec(/home/user/vacuumvideosript . $_GET['link'];
?>

sdm
() автор топика
Ответ на: комментарий от sdm

Забыл описать о чем речь:
VacuumvideosCript - скрипт на bash для скачивания видео с различных сайтов, таких как youtube, metacafe,... и т.д. Не требует наличия macromedia flash или сторонних flash-плейеров и графических браузеров. Использует wget, sed, grep, awk,...

sdm
() автор топика
Ответ на: комментарий от sdm

Их разница - в возвращаемом значении. exec возвращает последнюю строку, а shell_exec - весь вывод команды. Все это было в мануале.

amomymous ★★★
()
Ответ на: комментарий от helios

http заменить на html.

Опечатался

тогда уж <form action=«path/to/script» method=get> вместо <form>

<html>
<form><form action="path/to/script" method=get></form>
</html>

<?php
    shell_exec(/home/user/vacuumvideosript . $_GET['link'];
?>

Так? И где при этом ставить кнопку выполнить?

sdm
() автор топика
Ответ на: комментарий от amomymous

Их разница - в возвращаемом значении. exec возвращает последнюю строку, а shell_exec - весь вывод команды. Все это было в мануале

Я понимаю, что есть мануал, просто сейчас не ставлю себе целей освоить php, я пытаюсь выпросить небольшой кусок скрипта. Есть необязательная задача, которая сейчас держится на моем энтузиазме, и требующая этот скрипт. В случае изучения если начну осваивать хотя бы php, на энтузиазм не останется сил..

sdm
() автор топика
Ответ на: комментарий от sdm
<?php
    # TODO: проверка на валидность ссылки, а то похакают.
    if( $_GET['link'] )
        shell_exec(/home/user/vacuumvideosript . $_GET['link'];
?>
<!doctype html>
<html>
   <head>
      <title>Hello world</title>
   </head>
   <body>
       <form action="http://путь до скрипта" method=get>
           <input type="text" name="link">
           <input type="submit">
       </form>
   </body>
<html>
helios ★★★★★
()
Ответ на: комментарий от helios

> shell_exec(/home/user/vacuumvideosript . $_GET['link'];

Наверно shell_exec(«/home/user/vacuumvideosript» . $_GET['link'];

amomymous ★★★
()

Не слушай их. Использование exec очень не безопасно. Лучше закидывать ссылки в базу данных, а потом оттуда их по крону (или любым другим способом) вытаскивать и обрабатывать. (Гуглить: php работа с формами, php mysql).

Собственно, в этом случае задача сводится к написанию простейшего интерфейса для добавления записей в БД.

drakmail ★★★★
()
Ответ на: комментарий от drakmail

Всем спасибо, скрипт сходу не заработал (когда все вместе форма не появляется, когда врозь (2 файла html и php) появляется, но не работает). Зато я понял логику, далее думаю сам справлюсь..
PS: Незакрытую скобку нашел (4-я строка), safe_mode = Off, дело не в этом..

sdm
() автор топика
Ответ на: комментарий от sdm

Перечитывая топик заметил, что про экранирование писал amomymous, а сразу не разглядел отличий..

sdm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.