我正在Raspberry Pi3上运行Incredible PBX。我有一个Arduino MEGA,它向Raspberry Pi发送HTTP GET请求。 Arduino发送三个变量ext,calleerid和room,并在Raspberry Pi上调用PHP文件以将值写入MySql。我可以在Raspberry Pi上的Apache2访问日志文件中看到GET请求,但是PHP文件没有运行。感谢任何建议。
我以前曾在Raspberry Pi模型A上进行过此工作,但是现在我正在使用较新的版本,因此我无法弄清为什么PHP文件无法加载并将值写入数据库的原因。
Arduino代码是-
if (client.connect(server, 80)) {
Serial.println("-> Connected and sending HTTP Request");
// Make a HTTP request:
client.print( "GET /add_data.php?"); //THIS SHOULD BE add_data.php
client.print("ext=");
client.print( extn );
client.print("&&");
client.print("room=");
client.print( room );
client.print("&&");
client.print("callerid=");
client.print( callerId2 );
client.println( " HTTP/1.1");
client.print( "Host: " );
client.println(server);
client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println( "Connection: close" );
client.println();
client.println();
client.stop();
//Serial.print ("Room = " + room);
Serial.println ("HTTP Request proceesed and sent!");
Serial.println ("Database queries in process");
}
else {
// you didn't get a connection to the server:
Serial.println("--> connection failed/n");
}
PHP代码是-
`
// Prepare the SQL statement
$SQL = "INSERT INTO test.newdata (ext ,callerid ,room) VALUES ('".$_GET["ext"]."','".$_GET ["callerid"]."','".$_GET["room"]."')";
$SQL1 = "INSERT INTO test.room (room) VALUES ('".$_GET["room"]."')";
// Execute SQL statement
mysql_query($SQL);
mysql_query($SQL1);
include("select_room.php");
// Go to the review_data.php (optional)
header("Location: Site_2/review_data.php");
?>`
Apache2访问日志文件显示GET请求-
xxxx--[13 / Apr / 2019:22:50:29 -0400]“ GET /Site_2/review_data.php HTTP / 1.1” 200 1538“ http://x.x.x.x/Site_2/review_data.php”“ Mozilla / 5.0(Windows NT 10.0 ; Win64; x64)AppleWebKit / 537.36(KHTML,like Gecko)Chrome / 64.0.3282.140 Safari / 537.36 Edge / 17.17134“ x.x.x.x--[13 / Apr / 2019:22:50:52 -0400]“ GET /add_data.php?ext=5000&&room=110&&callerid=110+Config+Test” 400 0“-”“-” 10.1.11.200--[13 / Apr / 2019:22:51:14 -0400]“ GET /Site_2/review_data.php HTTP / 1.1” 200 1538“ http://192.168.50.123/Site_2/review_data.php”“ Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 64.0.3282.140 Safari / 537.36 Edge / 17.17134“
答案 0 :(得分:0)
首先,您以错误的方式使用了REST体系结构。实际上,您使用GET而不是POST类型的请求来插入新数据。
但是,我没有尝试过您的代码,但是问题可能是&&而不是单&。
此外,您必须使用error_log($ variable_name)调试PHP代码,以查看是否从GET正确接收了值。
提示:使用REST调用时,请尝试使用POSTMAN软件模拟REST CALL并查看响应