Allora:
Pagina1
io ho un pannello con 4 tasti (Offline / Online / Pausa / Occupato)
4 tasti. Se premo uno di questi tasti all'operatore compare il suo stato che ha appena scelto.
Mettiamo che scelga "Occupato"
Una procedura PHP
Codice PHP:
<?php
// utente: utente101
if(isset($_POST["esegui1"]))
{
$scelta=1;
}
if(isset($_POST["esegui2"]))
{
$scelta=2;
}
if(isset($_POST["esegui3"]))
{
$scelta=3;
}
if(isset($_POST["esegui4"]))
{
$scelta=4;
}
if($scelta==0)
{
$img = "https://miosito.com/wp-content/uploads/2019/03/profilo_101_1.png";
echo '<img alt="" src="',$img , '">',"\n <br />";
}
if($scelta==1)
{
$img = "https://miosito.com/wp-content/uploads/2019/03/profilo_101_1.png";
echo '<img alt="" src="',$img , '">',"\n <br />";
$fp = fopen('/tmp/utente101.txt', 'w');
fwrite($fp, $img);
fclose($fp);
}
if($scelta==2)
{
$img = "https://miosito.com/wp-content/uploads/2019/03/profilo_101_2.png";
echo '<img alt="" src="',$img , '">',"\n <br />";
$fp = fopen('/tmp/utente101.txt', 'w');
fwrite($fp, $img);
fclose($fp);
}
if($scelta==3)
{
$img = "https://miosito.com/wp-content/uploads/2019/03/profilo_101_3.png";
echo '<img alt="" src="',$img , '">',"\n <br />";
$fp = fopen('/tmp/utente101.txt', 'w');
fwrite($fp, $img);
fclose($fp);
}
if($scelta==4)
{
$img = "https://miosito.com/wp-content/uploads/2019/03/profilo_101_4.png";
echo '<img alt="" src="',$img , '">',"\n <br />";
$fp = fopen('/tmp/utente101.txt', 'w');
fwrite($fp, $img);
fclose($fp);
}
?>
<br>
<form method="POST" action="">
<input type="submit" name="esegui1" value=" Offline " />
</form>
<br>
<form method="POST" action="">
<input type="submit" name="esegui2" value=" In pausa " />
</form>
<br>
<form method="POST" action="">
<input type="submit" name="esegui3" value=" Online " />
</form>
<br>
<form method="POST" action="">
<input type="submit" name="esegui4" value="Occupato" />
</form>
salva il file utente101.txt dentro .cagefs/tmp/ che contiene solo la stringa:
https://miosito.com/wp-content/uploa...filo_101_4.png
------
Pagina2
Contiene uno script che entra in azione ogni 30 secondi. Che lancia una funzione PHP che a sua volta lancia uno snippet che carica il dato.
Codice PHP:
<script>
function on_callPhp()
{
var result="<?php php_func();?>";
// alert(result);
return false;
}
var data = new Date();
data.setTime(<? echo time()*1000; ?>);
function orologio()
{
var sec = data.getSeconds();
document.getElementById('orologio').innerHTML = sec;
data.setTime(data.getTime()+1000)
setTimeout("orologio();",1000);
if(sec==0)
{
// "routine 1 di apertura file in PHP";
document.getElementById('scritta').innerHTML = 'lancio routine 1 di apertura file in PHP';
on_callPhp();
}
if(sec==30)
{
// "routine 2 di apertura file in PHP";
document.getElementById('scritta').innerHTML = 'lancio routine 2 di apertura file in PHP';
on_callPhp();
}
}
</script>
<body onload="orologio()">
<div id="orologio"></div>
<div id="scritta"></div>
<?php
function php_func()
{
echo "ciao";
echo do_shortcode('[wbcr_snippet id="532" title="test_chiamata_snippet"]');
}
?>
</body>
Infine lo snippet 532 che viene correttamente richiamato contiene questo:
Codice PHP:
<?php
{
$img101 = "";
$filename = "/tmp/utente101.txt";
$handle = fopen($filename, "r");
$img101 = fread($handle, filesize($filename));
fclose($handle);
if($img101=="https://miosito.com/wp-content/uploads/2019/03/profilo_101_3.png")
{
echo "LIBERO e ONLINE";
echo '<a href="tel:348240XXXX"><img alt="" src="',$img101 , '"></a>',"\n <br />";
}
else
{
echo "TUTTI GLI ALTRI CASI";
echo '<img alt="" src="',$img101 , '"></a>',"\n <br />";
}
}
?>
Allora stranamente se l'operatore entra la prima volta e il file contiene la stringa:
"https://miosito.com/wp-content/uploads/2019/03/profilo_101_3.png"
Il sito presenta che è Online (correttamente).
Poi l'operatore dal suo pannello si mette come "Occupato" e il file contiene:
"https://miosito.com/wp-content/uploads/2019/03/profilo_101_4.png"
Ma se io ho una pagina aperta lo stato non mi cambia. La procedura funziona e ogni 30 secondi ricevo i messaggi di controllo ma continua a caricarmi la stringa come se il file non fosse stato aggiornato. Se ricarico la pagina mi vede il file ultimo. E' come se separasse le sessioni.
Ultima cosa (ma questo è relativo) lo snippet 532 lanciato da solo mi visualizza l'immagine. Lanciato da funzione PHP non visualizza l'immagine. Ma forse sbaglio io a richiamarla.