ciao a tutti, tempo fa feci questo script che servirebbe a contare le visualizzazioni di una pagina(con un determinato id, tipo il visualizzatore di youtube sui video), solo che ho voluto fare qualcosa di più complicato di una semplice variabile che si incrementa ogni volta che viene aggiornata la pagina, e quindi ho usato i cookie(e se non accettati dall'utente, le sessioni) per vedere se l'utente avesse già visitato quella pagina(se si: non incrementa, se no: incrementa). Il problema è che non so perché una volta utilizza i cookie e una volta le sessioni. Vi mostro il codice così si capisce meglio:
codice:
if(!isset($_COOKIE['prova']))
{
setcookie('prova',"test",(time()+500000)); //verifico se l'utente accetta i cookie
}
if(!isset($_COOKIE['prova'])) //se non accetta i cookie
{
if(!empty($_SESSION['views']) || isset($_SESSION['views']))
{
$sep = "|";
$varray = explode($sep, $_SESSION['views']);
foreach($varray as $v)
{
if($v != $text) {
$visited = 0;
} else {
$visited = 1; //ha già visitato la pagina.
break;
}
}
if($visited == 0) //se non ha ancora visitato la pagina
{
$views++;
$obj2->update_thread($text,'views',$views);
$_SESSION['views'] = $text .$sep .$_SESSION['views'];
}
else if($visited == 1) //se ha già visitato la pagina
{
if($text != $varray[0])
{
$_SESSION['views'] = $text .$sep .$_SESSION['views'];
}
}
}
else
{
$_SESSION['views'] = $text;
$views++;
$obj2->update_thread($text,'views',$views);
}
echo $_SESSION['views'];
echo '<br><span style="color: red"> '.$views .'</span>';
echo '<br><span style="color: blue">sessione</span>';
exit;
}
else //se accetta i cookie
{
setcookie ('prova', '', (time()-50000)); //ELIMINAZIONE cookie
if(empty($_COOKIE['views']) || !isset($_COOKIE['views']))
{
setcookie('views', $text, (time()+86400));
$views++;
$obj2->update_thread($text,'views',$views);
}
else
{
$sep = "|";
$varray = explode($sep, $_COOKIE['views']);
foreach($varray as $v)
{
if($v != $text) {
$visited = 0;
} else {
$visited = 1;
break;
}
}
if($visited == 0)
{
$views++;
$obj2->update_thread($text,'views',$views);
$_COOKIE['views'] = $text .$sep .$_COOKIE['views'];
}
else if($visited == 1)
{
if($text != $varray[0]) {
$_COOKIE['views'] = $text .$sep .$_COOKIE['views']; }
}
}
echo $_COOKIE['views'];
echo '<br><span style="color: red"> '.$views .'</span>';
echo '<br><span style="color: blue">cookie</span>';
exit;
}
per vedere una pagina di prova: http://youtoobob.it/thread.php?t=10
come vedrete ogni volta che refreshate cambia da cookie in sessione e da sessione a cookie. Non riesco a venirne a capo, spero in un vostro aiuto. Grazie