2013-10-12 39 views
0

我想创建一个小型网站来控制笔记本电脑上的音乐播放器。我怎么能(可能使用AJAX和/或Python)在页面上创建一个按钮,并让它在服务器上运行一个系统调用,这是用户不可修改的?通过网站在服务器上运行命令?

回答

0

我曾经使用过一种非常简单但不安全的方法。首先,你必须创建一个PHP脚本您的本地服务器上运行:

http://LOCAL-IP/commandscript.php?command=YOUR_COMMAND 

UPDATE(安全修补程序):

<?php 
$command = $_GET['command']; 
shell_exec($command); 
?> 

您可以通过AJAX使用以下URL现在把这块脚本:

<?php 
    $commands = array(
     "next" => "deadbeaf --next", 
     "prev" =>"deadbeef --prev", 
     "play" => "deadbeef --play-pause" 
    ) 

    $command = $_GET['command']; 

    if (array_key_exists($command, $commands)) { 
     shell_exec($commands[$command]); 

    } 
?> 

跳过一首歌的网址为:

http://IP-ADRESS/commandscript.php?command=next 
+2

'http://local-ip/commandscript.php?command = rm%20-rf%20〜/ *' – tkbx

+1

“unsecure”不会削减它。这与将笔记本电脑置于街道中间并登录并将信用卡粘在背面一样安全。 – rlms

+0

你绝对是对的。我添加了所需的安全... – Niklas

1

基本上,你不想(不应该能够)控制你的音乐播放器从网络服务器。音乐必须驻留在网络服务器上。

你不需要Ajax或Python来让服务器流式传输音频。您只需从表单获取HTTP GET或POST即可。它在网络服务器上运行CGI http://en.wikipedia.org/wiki/Common_Gateway_Interface,这会导致服务器响应您的请求提供音频http://en.wikipedia.org/wiki/MIME_type#Type_audio。您需要确保内容类型(MIME类型)与您的播放器可以播放的内容一致,并确保它在接收该类型的内容时启动。

+0

我的笔记本电脑_is_的网络服务器。我只想让它运行'deadbeaf --next','deadbeef --prev','deadbeef --play-pause'等 – tkbx

+0

如果是这样的话,就不需要网页或服务器,只需要创建一个python或shell脚本来做你想做的事情。你可以使用CGI方法,并为每个选择都有一个按钮。 –

+0

但我希望能够从网络上的其他计算机控制它。 – tkbx