Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #1

    cookie a volte funziona a volte no

    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
    Ultima modifica di AlexDev; 03-09-2014 a 13:09 Motivo: aggiunte righe di commento

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.