最近查看的页面脚本

时间:2009-10-08 11:09:04

标签: php

我有一个显示当前网址的脚本:

<? 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']);

     ?>

我无法弄清楚如何让它显示已查看的最后10页,有什么想法吗?

谢谢, 乙

4 个答案:

答案 0 :(得分:2)

你一直在重写$ _SESSION ['pages']。 创建一个数组并将URL添加到该数组:

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

然后检查数组中是否有超过10个项目,如果有,则删除第一个项目:

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

然后显示网址

答案 1 :(得分:0)

看起来您只是使用$_session['pages']=$CurrentPage;分配/替换会话中的值。你应该做的是在那里放一个数组。

这是我的逻辑:

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

答案 2 :(得分:0)

你需要把它变成一个数组:

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

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

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

答案 3 :(得分:0)

我认为脚本知道访问的最后1页的唯一原因是因为引用地址在实际的HTTP头中。

如果您想要特定地显示您网站上访问的最后10个页面,可以使用会话变量执行此操作。类似的东西:

//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"];