我有一个显示当前网址的脚本:
<? 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页,有什么想法吗?
谢谢, 乙
答案 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"];