【发布时间】:2018-05-30 21:46:07
【问题描述】:
我是 php 的菜鸟。我已经使用 php 中的脚本与 arduino 通信超过 1 年了。
Arduino 将数据发送到我的 php 脚本,它会回答 arduino 可以读取的文本,以了解数据是否已正确保存。还有一种方法可以获取 arduino 从我的 mysql 数据库启动时需要的一些设置。
我一直在回复我的 arduino 答案的方式是使用“DIE”功能。
我有这个 php 文件(伪代码):
function.php(几个函数)
function response($str) {
die('<' . $str . '>'); //< and > is to let arduino knows exactly the answer
}
function get_settings() {
$response = "";
// ...... so response is completed
return $response;
}
index.php(此文件包含function.php 和gate.php 的“require_once”以及其他功能。它是主文件)
gate.php(从 arduino 接收数据并需要发送答案的脚本文件)
//it gets data from $_GET and saves it into a mysql database
//After that:
if ($result) {
response('OK');
} else {
response('BAD_VALUES');
}
//And with other params in the $_GET, it does:
if ($_GET['k'] === ARDUINO_KEY) {
response(get_settings());
} else {
response('BAD KEY');
}
本周以来的问题是:
1.如果我想得到“response('OK');”来自gate.php 我什么都没有,在 Chrome 中我什么也看不到
2.如果我想得到“response(get_settings());”从 gate.php 我确实得到了信息,Chrome 正在显示它。
3. 如果我将这一行“response(get_settings());”更改为“response('OK');”或“响应(“OK”);”我什么都没有,在 Chrome 中我什么也看不到
您对此有何看法?为什么返回字符串的函数有效,而字符串无效。为什么它工作了几个月,突然就不行了?
我已经在我的“免费主机计划”和 usbWebserver 中检查了它。
非常感谢您的帮助。
【问题讨论】:
-
发生了什么变化?你检查过错误日志吗?您能否更好地解释您的意思:“为什么返回字符串的函数有效,而字符串无效。” ?
-
某事阻止 response() 正常工作。您需要检查错误日志以查明问题的根源。
-
“为什么返回字符串的函数有效,而字符串无效。”对不起我的英语不好。我的意思是它与返回字符串的函数完美配合,但如果我直接写一个字符串,它就不起作用了。
-
感谢@MichaelGregoire。我不确切知道如何检查错误日志,但奇怪的是它直到本周才有效。这对我来说很奇怪。还有..为什么它与“response(get_settings());”一起工作这意味着响应功能可以正常工作,不是吗?