从 html 页面调用外部 php 脚本
Calling external php script from html page
这是我的第一个 post 所以如果这在错误的区域或格式不正确,我深表歉意!
我对网络开发非常陌生,找不到我要找的东西,所以我想我会在这里问。我的愿望是在我的 Raspberry Pi 上创建一个包含 HTML 网页的网络服务器。单击 HTML 页面中的按钮时,将调用 HTML 页面底部的 Javascript 脚本以从文本框中获取文本并对其进行验证。然后我想将这些数据发送到 PHP 脚本(位于与 index.html 文件相同的目录中),该脚本仅使用我 Pi 上的数据执行另一个 python 脚本。当我从终端 运行 我的 PHP 脚本时:
sudo php setalarm.php "10 20 1,2,3"
它按预期运行,但单击 HTML 页面上的按钮后,没有任何反应。我已验证 "package" 变量包含正确的数据,但我无法看到 JQuery.
的结果
我有以下问题:
- 如果我唯一的愿望是发送 "package"(请参阅 HTML 文件片段 - 消息 Javascript,下面的第 2 行或上面命令中的第二个参数)作为从我的 HTML 页面执行 python 脚本的命令行参数,这是正确的方法吗?如果没有,我该如何执行这样的任务?
- 有没有办法从 HTML 页面调试和查看我的外部 PHP 文件?我正在使用 IE 的调试工具,如果我在我的 jQuery 之前立即设置一个断点并进入下一行,我将无法查看 PHP 脚本,只有一个空白的 return 结果。
- 如果我正在尝试的方法是解决问题的好方法,您是否看到代码有任何明显的错误或问题?
编辑 - 新 PHP 脚本
<?php
echo "Package is: " . $_GET['package'];
system("sudo python /home/pi/Alarm/change_alarm.py {$_GET['package']}", $ret_val);
?>
HTML 文件片段 - 按钮
<div class="grid8 a-right">
<form method="post"> </form>
<button id="submitButton" type="submit" onclick="message()"> SET</button>
</div>
HTML 文件片段 - 消息 Javascript
alert("Alarm set for " + hour + ":" + minute + " on " + message);
package = hour + " " + minute + " " + list;
$.ajax({
method: "GET",
url: "setalarm.php",
data: { package: package }
})
.done(function( msg ) {
alert(msg);
});
非常感谢大家的帮助!再次,如果我在 post 中有任何错误,我深表歉意。另外,如前所述,我对网络开发还很陌生,所以这可能是一个非常愚蠢的错误。如果确实如此,我很抱歉!
为了解决这个问题,我不得不对我的网络服务器进行一些更改。首先,我注意到 /var/log/apache2/error.log
处的错误日志中缺少一个图标,因此我使用 PhotoShop 创建了一个简单的图标。其次,我将我的 apache2 用户帐户 www-data
添加到 sudo 并授予它所有权限。第三,我将 python 脚本移动到我的网络服务器所在的 /var/www/
文件夹,并相应地更新了 php 脚本。以上三个组合解决了我的问题。
这是我的第一个 post 所以如果这在错误的区域或格式不正确,我深表歉意!
我对网络开发非常陌生,找不到我要找的东西,所以我想我会在这里问。我的愿望是在我的 Raspberry Pi 上创建一个包含 HTML 网页的网络服务器。单击 HTML 页面中的按钮时,将调用 HTML 页面底部的 Javascript 脚本以从文本框中获取文本并对其进行验证。然后我想将这些数据发送到 PHP 脚本(位于与 index.html 文件相同的目录中),该脚本仅使用我 Pi 上的数据执行另一个 python 脚本。当我从终端 运行 我的 PHP 脚本时:
sudo php setalarm.php "10 20 1,2,3"
它按预期运行,但单击 HTML 页面上的按钮后,没有任何反应。我已验证 "package" 变量包含正确的数据,但我无法看到 JQuery.
的结果我有以下问题:
- 如果我唯一的愿望是发送 "package"(请参阅 HTML 文件片段 - 消息 Javascript,下面的第 2 行或上面命令中的第二个参数)作为从我的 HTML 页面执行 python 脚本的命令行参数,这是正确的方法吗?如果没有,我该如何执行这样的任务?
- 有没有办法从 HTML 页面调试和查看我的外部 PHP 文件?我正在使用 IE 的调试工具,如果我在我的 jQuery 之前立即设置一个断点并进入下一行,我将无法查看 PHP 脚本,只有一个空白的 return 结果。
- 如果我正在尝试的方法是解决问题的好方法,您是否看到代码有任何明显的错误或问题?
编辑 - 新 PHP 脚本
<?php
echo "Package is: " . $_GET['package'];
system("sudo python /home/pi/Alarm/change_alarm.py {$_GET['package']}", $ret_val);
?>
HTML 文件片段 - 按钮
<div class="grid8 a-right">
<form method="post"> </form>
<button id="submitButton" type="submit" onclick="message()"> SET</button>
</div>
HTML 文件片段 - 消息 Javascript
alert("Alarm set for " + hour + ":" + minute + " on " + message);
package = hour + " " + minute + " " + list;
$.ajax({
method: "GET",
url: "setalarm.php",
data: { package: package }
})
.done(function( msg ) {
alert(msg);
});
非常感谢大家的帮助!再次,如果我在 post 中有任何错误,我深表歉意。另外,如前所述,我对网络开发还很陌生,所以这可能是一个非常愚蠢的错误。如果确实如此,我很抱歉!
为了解决这个问题,我不得不对我的网络服务器进行一些更改。首先,我注意到 /var/log/apache2/error.log
处的错误日志中缺少一个图标,因此我使用 PhotoShop 创建了一个简单的图标。其次,我将我的 apache2 用户帐户 www-data
添加到 sudo 并授予它所有权限。第三,我将 python 脚本移动到我的网络服务器所在的 /var/www/
文件夹,并相应地更新了 php 脚本。以上三个组合解决了我的问题。