sim800C Отправить данные на сервер и сохранить в базе данных

Я новичок, извините за мои ошибки. Я пытаюсь отправить значение датчика температуры на мой сервер с помощью метода post модулем Simcom sim800C. в моей клиентской части я использую эти команды.

AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","mtnirancell"
AT+SAPBR=1,1
AT+SAPBR=2,1
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://www.mysiteaddress.ir"
AT+HTTPPARA="CONTENT","application/json"
AT+HTTPDATA=20,10000 //data is 20 Bytes,maximum latency time is 10000 ms.
// Wait a few moments to Receive "DOWNLOAD" from sim800c module
{"data":"my sensor value"} // The data I want to send
AT+HTTPACTION=1

после этой команды ответ модуля

OK

+HTTPACTION: 1,200,86

и для сервера PHP я использую следующие коды:

<?php
require_once 'db.php';   // loading Database Class file
$db = Db::getInstance(); // Create an instance of the database

$records = $_POST;
$records = json_decode($records);
foreach ($records as $record){
  $db->query("INSERT INTO `note` (`id`, `data`) VALUES (NULL,'$record')");
}

В конце концов, ничего не хранится в базе данных.

1 ответ

Моя ошибка была в кодах PHP. Чтобы получить значения POST, я добавил следующие строки.

$request_body = "";
$request_body = file_get_contents('php://input');
$record = urldecode($request_body);
$db->query("INSERT INTO `note` (`id`, `data`) VALUES (NULL, '$record')");

больше информации, передавая данные json через тело http

Другие вопросы по тегам