Ho un bug stranissimo in un programma di contavisite. Ho progettato una funzione che crea un cookie nel browser nel caso in cui esso sia inesistente. Il punto critico è il seguente:
Codice PHP:

if (! isset ( $_COOKIE [$nomecookie] )) {
print_r ( $nomecookie . "
"
);
setcookie ( $nomecookie, 1, $durataCookie );
$v = $v + 1;
file_put_contents ( $file, $v, LOCK_EX );
}


Se azzero il browser e lo riporto a nuovo (elimino cookie, cronologia, ecc) va tutto ok, ovvero alla prima iterazione il browser non trova il cookie, lo crea e lo stampa a video. Alla seconda iterazione invece si accorge che il cookie esiste già pertanto non entra nella funzione e non stampa nulla.
Se non azzero il browser il contavisite entra dentro l'if un'infinità di volte e ad ogni refresh incrementa di 1 il contatore. Se apro il browser il nome stampato ($nomecookie) lo trovo e con scadenza nel 2023.
Il problema si verifica con tutti i browser così sono certo che il mio script abbia un bug.
Ovviamente lo stesso problema mi capita anche quando azzero il contavisite ovvero quando cambio il nome del cookie ($nomecookie).
Ma questa cosa come fa ad accadere? A me sembra impossibile!!!
Il problema si verifiche solo durante le fasi di test del contavisite e quindi vado a modificare la data dell'orologio di windows.
:bhò:


Scritto da: giannino1995 in categoria PHP nella data 03-07-2015 17:13.