Grazie mille per la pronta risposta la stringa che invio è questa:
api_key=xxxxxxxxxxxx&sensor=BME280&location=Office&value1=24.75&value2=49.54&value3=1005.14
e la invio come "Content-Type: application/x-www-form-urlencoded"
come posso fare per vedere se arriva? esiste un altro comando oltre a echo?
Più che altro non so dove posso vedere se arriva qualcosa e cosa arriva (magari arriva una stringa codificata male).
Eliminando il vincolo dell' apikey dal file php funzionante registro un new record nel mysql ma si tratta di una riga vuota..
quindi qualcosa credo che arrivi..questo il file PHP originale
<?php
$servername = "localhost";
// REPLACE with your Database name
$dbname = "";
// REPLACE with Database user
$username = "";
// REPLACE with Database user password
$password = "";
// Keep this API Key value to be compatible with the ESP32 code provided in the project page.
// If you change this value, the ESP32 sketch needs to match
$api_key_value = "xxxxxxxxxxxx";
$api_key= $sensor = $location = $value1 = $value2 = $value3 = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$api_key = test_input($_POST["api_key"]);
if($api_key == $api_key_value) {
$sensor = test_input($_POST["sensor"]);
$location = test_input($_POST["location"]);
$value1 = test_input($_POST["value1"]);
$value2 = test_input($_POST["value2"]);
$value3 = test_input($_POST["value3"]);
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO SensorData (sensor, location, value1, value2, value3)
VALUES ('" . $sensor . "', '" . $location . "', '" . $value1 . "', '" . $value2 . "', '" . $value3 . "')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
else {
echo "Wrong API Key provided.";
}
}
else {
echo "No data posted with HTTP POST.";
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
Grazie ancora