• 09-11-2020, 19:06:35
    #1
    ziyaretçinin en son açtığı sayfaları sırasıyla nasıl alabilirim?

    amaç bunu cookiye'de atamak ve son gezdiği sayfaları göstermek..
  • 09-11-2020, 19:46:23
    #2
    // bir örnek yazdım geliştirmesi sana kalmış

    <?php
    
    function GetCurrentUri(){    return (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";}
    
    function GetLastVisited() {   
     return isset($_COOKIE['last_visited']) ? json_decode($_COOKIE['last_visited'],true) : [];
    }
    function UpdateVisited(){    
       $list = array();    
       if(isset($_COOKIE['last_visited'])){       
        $list = json_decode($_COOKIE['last_visited'],true);          
     }   
     if(($count = count($list)) > 0){        
           if($list[$count - 1] != GetCurrentUri()){            
                array_push($list ,GetCurrentUri());       
            }    
    }else{        
              array_push($list ,GetCurrentUri());    
     }   
     setcookie('last_visited', json_encode($list), time()+(60 * 60 * 24));
    }
    $list = GetLastVisited();
    if(count($list) > 0){ // eğer geçmiş kayıtları varsada
        echo "<h1>Son gezilen listesi </h1>";    
          echo "<ul>";   
           foreach($list as $key => $item){   
                  echo "<li>".($key + 1) . " . " . $item."</li>";     
           }    
         echo "</ul>";
    }
    
    // sayfa sonunda güncelleme yaparsın
    UpdateVisited();
  • 09-11-2020, 20:35:44
    #3
    darness adlı üyeden alıntı: mesajı görüntüle
    // bir örnek yazdım geliştirmesi sana kalmış

    <?php
    
    function GetCurrentUri(){    return (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";}
    
    function GetLastVisited() {   
     return isset($_COOKIE['last_visited']) ? json_decode($_COOKIE['last_visited'],true) : [];
    }
    function UpdateVisited(){    
       $list = array();    
       if(isset($_COOKIE['last_visited'])){       
        $list = json_decode($_COOKIE['last_visited'],true);          
     }   
     if(($count = count($list)) > 0){        
           if($list[$count - 1] != GetCurrentUri()){            
                array_push($list ,GetCurrentUri());       
            }    
    }else{        
              array_push($list ,GetCurrentUri());    
     }   
     setcookie('last_visited', json_encode($list), time()+(60 * 60 * 24));
    }
    $list = GetLastVisited();
    if(count($list) > 0){ // eğer geçmiş kayıtları varsada
        echo "<h1>Son gezilen listesi </h1>";    
          echo "<ul>";   
           foreach($list as $key => $item){   
                  echo "<li>".($key + 1) . " . " . $item."</li>";     
           }    
         echo "</ul>";
    }
    
    // sayfa sonunda güncelleme yaparsın
    UpdateVisited();
    çalışmadı hocam.
  • 09-11-2020, 20:38:53
    #4
    test ettim bir sorun yok scriptte hata nedir
  • 09-11-2020, 22:09:29
    #5
    tamam farklı da olsa başka bir yoldan halletim hocam ama bi yerde takıldım.

    şimdi cookiye son gezilen sayfaları alıyorum. ama cookie dizisinin eleman sayısını sınırlandırmak istiyorum.
    yani cookie dizisi eleman sayısı diyelim ki 5'i geçmesin.
    gerisini array_unshift ve array_pop ile halledebilrim sanırım.