单击按钮(apache)后从网站执行php文件


Execute php file from website after clicking a button (apache)

php文件位于网站目录(/var/www),我想从同一目录中index.html执行它。

该 php 文件:

    <?php
    exec("sudo -u pi /home/pi/camcv/camcv .. ");
    ?>

可以通过从系统中的任何位置在命令行中键入php /var/www/script.php来运行,它可以正确执行(相机闪烁,打开带图片的窗口,没有错误)。我需要它由www-data用户从网站执行。

我知道有很多选择,我尝试了submit形式,onClick操作,发送参数($_POST['xy']),然后在php文件中以"if"结构观看它,AJAXXMLHttpRequest的形式和$.ajax的形式,我尝试包含javascript jquery.min.js并尝试在sudoers中添加权限或更改文件夹/文件的所有权,允许读/写/执行...所有这些都没有实现目标。

所以我的问题是:

-有人有防弹的方法来完成这项工作吗?

-你能告诉我我到底必须在sudoers中添加什么吗?

感谢您的任何建议。

PS:很少有尝试将我重定向到第 http://(ip)/script.php 页,因此按钮至少有一些响应。此外,XMLHttpRequest确实在更改网页上的文本(读取和发布txt文件)方面工作。

PSS:该功能不需要任何返回信息,我需要页面使用按钮留在网站上,可能不会重新加载。

尝试用jQuery解决这个问题:

<!doctype html><head><meta charset="utf-8"></head><body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(function(){
$("#clickme").bind('click', function(){
        $.get( "script.php", function( data ) {
        $( ".result" ).append( data );
        });
    });
});
</script>
<input type="submit" id="clickme" value="TEST">
<div class="result">Result...</div>
</body>
</html>

如果你的"脚本.php"有任何响应,你将在div容器中得到它