Son zamanlarda görüntülenen sayfalar komut

4 Cevap

Ben geçerli URL gösteren bir komut dosyası var:

<? function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

       $CurrentPage = curPageURL();
       $_session['pages']=$CurrentPage; 
       print_r($_session['pages']);

     ?>

Ben görülür olmuştur son 10 sayfa, herhangi bir fikir lütfen görüntülemek yapmak için nasıl çalışmak değil mi?

Thanks, B.

4 Cevap

You are constantly overriding $_SESSION['pages']. Create an array and add URLs to that array:

$_SESSION['pages'][] = $CurrentPage;

sonra 10 adetten fazla dizide olup olmadığını kontrol edin ve eğer ilk öğeyi kaldırın:

if ( Count ( $_SESSION['pages'] ) > 10 )
  Array_Shift ( $_SESSION['pages'] );

ardından URL'leri görüntüleyebilirsiniz

Bir diziye bunu yapmak gerekir:

if (empty($_SESSION['pages']))
    $_SESSION['pages'] = array();

$_SESSION['pages'][] = curPageURL();

$_SESSION['pages'] = array_slice($_SESSION['pages'], -10);

Sadece $_session['pages']=$CurrentPage; ile oturumda değerini değiştiriyorsanız / atama gibi görünüyor. Ne yapmalıyım orada bir dizi konur.

İşte benim mantık olur:

RecentPages()
{
    if (count of array > 10)
         Remove Top Item from Array
    Push Current Page to Array
    Print Array
}

Ben yönlendiren adres gerçek HTTP başlığında çünkü komut ziyaret son 1 sayfasını bilen tek nedeni olduğunu düşünüyorum.

Eğer specifcally sitenizde ziyaret son 10 sayfalarını göstermek istiyorsanız, bir oturum değişkeni ile bu yapabilirdi. Gibi bir şey:

//Knock the oldest page off when array count gets to 11:
if(array_count($_SESSION["pagehistory"]) > 10) {
    array_shift($_SESSION["pagehistory"]);
}

//Print the list of pages:
if($_SESSION["pagehistory"]) {
   echo "<h2>Page History</h2>";
   echo "<ul>";
   foreach($_SESSION["pagehistory"] as $page) {
      echo "<li>$page</li>";
   }
   echo "</ul>";
}

//Add the current page to the recent list:
$_SESSION["pagehistory"][] = $_SERVER["HTTP_REFERER"];