Ho fatto uno script per contare le visualizzazioni di una pagina;
lo script scarica l'array delle visualizzazioni in un file .txt oppure in un file .php e lo ricarica con le variazioni;
fin qui tutto bene:
codice con il file .txt
Oppure questo con il file .php:codice:<?php $file = 'visti.txt'; $json = file_get_contents($file); $nu = json_decode($json, true); $vid = $_GET['id']; echo $nu[$vid]; $ti1='<div><img style="visibility:hidden; width:1px" src="Immagini/'; $ti2='.webp"></div><div style="padding-bottom:10px">'; $te1 = '<video class=video src="Video/'; $te2 = '.mp4" controls autoplay poster="Immagini/'; $te3 = '.webp">Il tuo browser non può riprodurre questo video! Aggiornalo o installane uno nuovo.</video></div>'; echo $ti1,$vid,$ti2,$te1,$vid,$te2,$vid,$te3; $re = array($vid => $nu[$vid]+1); $be = array_replace($nu, $re); $data = json_encode($be); file_put_contents('visti.txt', $data); ?>
Il problema consiste nel fatto che non esegue la parte incrementale dello script tutte le volte, ma solo se cancello la cache o effettuo il refresh della pagina; se chiamo direttamente la pagina esegue tutto lo script .php ma non la parte che incrementa le visualizzazioni.codice:<?php include 'visti.php'; $vid = $_GET['id']; echo $nu[$vid]; $ti1='<div><img style="visibility:hidden; width:1px" src="Immagini/'; $ti2='.webp"></div><div style="padding-bottom:10px">'; $te1 = '<video class=video src="Video/'; $te2 = '.mp4" controls autoplay poster="Immagini/'; $te3 = '.webp">Il tuo browser non può riprodurre questo video! Aggiornalo o installane uno nuovo.</video></div>'; echo $ti1,$vid,$ti2,$te1,$vid,$te2,$vid,$te3; $re = array($vid => $nu[$vid]+1); $be = array_replace($nu, $re); $file = 'visti.php'; $v1= "<?php \$nu = "; $v2 = ";?>"; file_put_contents($file, $v1.var_export($be, true).$v2); ?>
Perchè mai?

Rispondi quotando
