【发布时间】:2013-10-20 11:52:04
【问题描述】:
我想创建一个小型网站来控制笔记本电脑上的音乐播放器。我如何(可能使用 AJAX 和/或 Python)在页面上创建一个按钮并让它在服务器上运行一个系统调用,而用户无法修改它?
【问题讨论】:
标签: python ajax web-applications
我想创建一个小型网站来控制笔记本电脑上的音乐播放器。我如何(可能使用 AJAX 和/或 Python)在页面上创建一个按钮并让它在服务器上运行一个系统调用,而用户无法修改它?
【问题讨论】:
标签: python ajax web-applications
基本上,您不想(不应该)从网络服务器控制您的音乐播放器。音乐必须驻留在网络服务器上。
您不需要 Ajax 或 Python 来让服务器流式传输音频。您只需要来自表单的 HTTP GET 或 POST。它在网络服务器上运行 CGI http://en.wikipedia.org/wiki/Common_Gateway_Interface,这会导致服务器提供音频 http://en.wikipedia.org/wiki/MIME_type#Type_audio 以响应您的请求。您需要确保 content-type(MIME 类型)与您的播放器可以播放的内容一致,并确保在接收该类型的内容时启动它。
【讨论】:
deadbeaf --next、deadbeef --prev、deadbeef --play-pause 等。
我曾经使用过一种非常简单但不安全的方法。首先,您必须创建一个在本地服务器上运行的 php 脚本:
<?php
$command = $_GET['command'];
shell_exec($command);
?>
您现在可以使用以下 URL 通过 AJAX 调用此脚本:
http://LOCAL-IP/commandscript.php?command=YOUR_COMMAND
更新(安全修复):
<?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
【讨论】:
http://local-ip/commandscript.php?command=rm%20-rf%20~/*