Cookies e PHP

andrea_fumagalli96

Nuovo Utente
24 Giu 2015
2
0
0
Buongiorno,

sono nuovo al forum, e novellino nella programmazione PHP e non solo. Ho un problema che non sono riuscito a risolvere...

Nella pagina index.php ho la presenza di un form molto semplice, che invia un parametro relativo ad una altitudine a una seconda pagina, read.php

read.php ha all'interno una query MySQL che preleva dei dati GPS e altitudine e li stampa a video. La pagina si aggiorna automaticamente tramite un refresh ogni 3 secondi:

<meta http-equiv="refresh" content="3">

Vorrei che l'utente inserisca un'altitudine di partenza tramite il form presente in index.php e tale parametro venga sottratto all'altitudine presente sul database MySQL.

index.php:

<form method="post" action="http://192.168.0.8/read.php">
Inserisci l'altitudine di dove ti trovi: <input type="text" name="altitudineInviata"/>
<input type="submit" value="Invia dato">
</form>

parte del codice è il seguente:

read.php:

<?php
$alt_inviata=$_POST["altitudineInviata"];
setcookie("altitudine_drone",$alt_inviata, time()+3600, '/');

if (mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)) {

$alt_inviata=$_COOKIE['altitudine_drone'];
$alt=$row["altitudine"];
$alt_float=floatval($alt);
$alt_drone = $alt_float-$_COOKIE['altitudine_drone'];
}
echo $alt_drone;
}
mysqli_close($con)
?>

Ho scelto di fare ciò tramite l'utilizzo di cookies.

Al primo refresh della pagina il codice funziona. Infatti se inserisco "10" e l'altitudine è "100", il risultato è 90. Ai successivi refresh della pagina, tale valore viene perso e mi rimane fisso 100

Spero di essere stato chiaro nella spiegazione... :confused:

Qualcuno può aiutarmi?

Grazie per la disponibilità
 

Sabo

Nuovo Utente
17 Giu 2015
31
0
6
PHP:
Non ho ben capito, sarà perche sono fuso.
Volevi fare cosi?
<?php
if( isset($_POST["altitudineInviata"]) ){
$alt_inviata=$_POST["altitudineInviata"];
setcookie("altitudine_drone_iniziale",$alt_inviata, time()+3600, '/');
}else{
setcookie("altitudine_drone_iniziale",'', time()+3600, '/');
}

if( isset($_COOKIE['altitudine_drone']){
$altezza = $_COOKIE['altitudine_drone'];
} else {
$altezza = $_COOKIE['altitudine_drone_iniziale'];
}

if (mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)) {

$alt_inviata=$altezza ;
$alt=$row["altitudine"];
$alt_float=floatval($alt);
$alt_drone = $alt_float-$_COOKIE['altitudine_drone'];
}
echo $alt_drone;
}
setcookie("altitudine_drone",'alt_drone', time()+3600, '/');
mysqli_close($con)
?>
 

andrea_fumagalli96

Nuovo Utente
24 Giu 2015
2
0
0
PHP:
Non ho ben capito, sarà perche sono fuso.
Volevi fare cosi?
<?php
if( isset($_POST["altitudineInviata"]) ){
$alt_inviata=$_POST["altitudineInviata"];
setcookie("altitudine_drone_iniziale",$alt_inviata, time()+3600, '/');
}else{
setcookie("altitudine_drone_iniziale",'', time()+3600, '/');
}

if( isset($_COOKIE['altitudine_drone']){
$altezza = $_COOKIE['altitudine_drone'];
} else {
$altezza = $_COOKIE['altitudine_drone_iniziale'];
}

if (mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)) {

$alt_inviata=$altezza ;
$alt=$row["altitudine"];
$alt_float=floatval($alt);
$alt_drone = $alt_float-$_COOKIE['altitudine_drone'];
}
echo $alt_drone;
}
setcookie("altitudine_drone",'alt_drone', time()+3600, '/');
mysqli_close($con)
?>

Grazie mille per la risposta!

Ho risolto il problema, passando l'altezza con il metodo GET anziché con il POST

Grazie ancora