Salve, anticipo che non sono molto esperto di PHP e HTML.
Sto cercando di realizzare una pagina web che visualizzi i dati raccolti da alcuni sensori tramite Arduino.
Ho sottoscritto un servizio di hosting gratuito nel quale ho creato la pagina e il database necessario. Purtroppo non riesco ad inviare direttamente i dati a questa pagina, probabilmente perchè si tratta di un server condiviso ed arduino non gestisce bene la cosa. PEr risolvere il problema ho installato Apache /MySQL/PHP su una macchina nella mia rete e qui posso popolare il database. Ho pensato quindi di fare in modo che quando il mio pc riceve i dati li invii a sua volta al server remoto tramite una chiamata GET nello script PHP che uso per inserire i dati nel DB. Inserendo i dati tramite un form HTML tutto funziona regolarmente, quando i dati vengono inviati da Arduino invece finiscono solo nel database locale.
Sapete darmi una mano? Come fa il server remoto a distinguere i due casi. Ho cercato nei log di Apache ed ho trovato questa differenza: nella richiesta fatta da messaggio Arduino dopo la stringa GET/..... ci sono due codici 302 e 49 seguiti da "-" "-"
Nella richiesta generata da inserimento dati nel form i codici sono 302 697 seguiti dal nome della pagina php "http://localhost/get_test.html" e da un header "Mozzilla(5.0 (windows NT 10; Win64; x64) ..........."
Sapete aiutarmi a fare in modo che lo script funzioni in entrambi i casi?
Grazie in anticipo
Questo è il codice PHP:
Codice PHP:
REPLACE with your Database name
$dbname 
"sensor_data";
// REPLACE with Database user
$username "username_DB";
// REPLACE with Database user password
$password "PWD_DB";

// 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 "tPmAT5Ab3K7F9";
 
$api_key $value1 $value2 $value3 "";

foreach(
getallheaders()as $name=>$value){

echo
"$name:$value\n";

}
 
 
header("Location: http://aqair.byethost31.com/getdata.php?api_key=tPmAT5Ab3K7F9&value1=12&value2=13&value3=14&submit_b=");

if (
$_SERVER["REQUEST_METHOD"] == "GET") {

    
$api_key test_input($_GET["api_key"]);

    if(
$api_key == $api_key_value) {
        
$value1 test_input($_GET["value1"]);
        
$value2 test_input($_GET["value2"]);
        
$value3 test_input($_GET["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 Sensor (value1, value2, value3)
        VALUES ('" 
$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 GET.";

}
function 
test_input($data) {
    
$data trim($data);
    
$data stripslashes($data);
    
$data htmlspecialchars($data);
    return 
$data;