Vroeger kon ik met

$content = file_get_contents("php://input");
//convert json object to php associative array
$json = json_decode($content,true);

waardes uit een url halen maar nu werkt dat niet meer.

Kan iemand mijn vertellen hoe ik

"name":"iSpindel000","ID":125392,"angle":77.06406,"temperature":34.0625,"battery":4.671533,"gravity":27.02963,"interval":1

kan ontleden? Ik kan de post welke het apparaat geeft namelijk niet aanpassen.


Onderstaand heb ik de aangepaste code staan maar deze krijg ik op een of andere manier niet werkend.Ik denk dat het te maken heeft met het : wat ertussen staat.




<?php
date_default_timezone_set('Europe/Amsterdam');
$servername = "localhost";
$username = "user";
$password = "paswoord";
$dbname = "name";
$time = date('Y-m-d h:i:s A');
$unixtime = strtotime($time);
// Create connection
$conn = new mysqli($servername, $username,$password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

if(isset($_GET["name"])) { // alleen als er data is meegegeven voeren we dit uit
echo "ok".$_GET;
$data = $_GET["name\"\:\""]; // parameter ophalen
$data1 = $_GET["angle"]; // parameter ophalen
$data2 = $_GET["temperature"]; // parameter ophalen
$data3 = $_GET["battery"]; // parameter ophalen
$data4 = $_GET["wort"]; // parameter ophalen

}


//$content = file_get_contents("php://input");
//convert json object to php associative array
$json = json_decode($content,true);

$sql = "INSERT INTO fermentervalues (name, angle, temperature, battery, wort, string ) VALUES( '$data', '$data1', '$data2', '$data3', '$data4', '$unixtime')";
if ($conn->query($sql) === TRUE) {

} else {

echo "Error:" . $sql . "<br>" . $conn->error;
}
$conn->close();

echo "ok";
?>
Die string is ook niet bedoeld om in de URL te kieperen.
Ik heb eerder het idee dat je naar het programma van de Arduino moet kijken. Want de PHP-code ziet er verder prima uit. Test het anders eens uit een hard-coded JSON string, zoals ik al deed.
Als ik die er hard coded in plaats werkt het. Maar als ik de string in de url plaats doet hij het ook niet. Het is net of die $content = file_get_contents("php://input"); regel niet meer werkt.
Wanneer is die link dan gebroken? Heb je iets speciaals gedaan?
Nee heb het apparaat 1 jaar niet gebruikt. In 2019 werkte het nog gewoon. Niks veranderd of aangepast.
Ik ben niet echt bekend met een Arduino, maar kan je niet daarmee zien of dat script daar ergens vastloopt?
script llopt gewoon goed. als ik de waardes in internet explore achter de url plaats werkte het voorheen ook. Nu dus ook niet meer.
Ik ben benieuwd hoe je dat dan doet? Het wordt dus via GET gestuurd?
Kan je dan niet de data in je PHP-script met GET uitlezen?
Ik zou zo niet weten hoe ik dat moet doen.
Via $_GET

print_r($_GET);
dan komt Array ( ) ok terug

Reageren