PHP会话问题

时间:2011-07-25 10:41:13

标签: php session

我有两个脚本,但我不能让它们一起工作。

1- A简单的页面浏览计数器

<?php
if(isset($_SESSION['views'])) 
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1; 
echo "Pageviews=". $_SESSION['views'];
?> 

2 - 来自列表的随机链接但不重复链接

<?php
if (empty($_SESSION['links'])) {
    // first time visit, populate random links in session
    $links = array('http://some-site.com', 'http://some-other-site.com', 'http://example.com');
    shuffle($links);
    $_SESSION['links'] = $links;
}
$link = array_shift($_SESSION['links']);
$_SESSION['links'][] = $link;
?> 

出于某种原因,如果我使用其中一个,另一个将停止工作,两个都工作正常,但我不能让它们在同一个网站上一起工作。

在标题上我有<?php session_start(); ?>但我也将脚本移动到网站的不同部分,我总是遇到同样的问题,一站式工作。我在每段代码的开头都有<?php session_start();?>但似乎没什么用。

在某些时候,我设法使两个脚本都工作,但页面视图计数器脚本从3到3计数,而不是从1到1 - 请注意,随机链接脚本上还有3个值;所以我的猜测是某些东西与两个脚本不兼容

我将非常感谢您在如何或在何处放置代码的任何帮助和指南。

谢谢,对不起我的英语 丹尼尔

1 个答案:

答案 0 :(得分:0)

尝试位于代码顶部

只需添加“$ _SESSION ['views'] = 0;”当你运行主脚本时我认为它会工作

$_SESSION['views'] = 0;

if (empty($_SESSION['links'])) {    
    // first time visit, populate random links in session    
    $links = array('http://some-site.com', 'http://some-other-site.com', 
'http://example.com');    
    shuffle($links);    
    $_SESSION['links'] = $links;    
}

$link = array_shift($_SESSION['links']);    
$_SESSION['links'][] = $link;    
echo "<pre>";    
print_r($_SESSION['links']);    
echo "</pre>"





if(isset($_SESSION['views']))     
$_SESSION['views']=$_SESSION['views']+1;    
else    
$_SESSION['views']=1; 

echo "Pageviews=". $_SESSION['views'];