2013-10-29 81 views
0

我有一个网站,我想显示给用户“你最近的访问”,如果用户访问网站第一次没有出现,但是如果他再次搜索到任何内容它会显示在一个盒子里。对于这个我有工作在饼干,但这是行不通的我的代码如下:如何在php的网站上维护用户历史记录?

<?php 
     $pageName = basename($_SERVER['SCRIPT_NAME']); 
     $site_name = 'www.xyz.com'; 
     setcookie('site_name',$site_name,time()+(60*60)); 
    ?> 

     <body style="margin:0 auto; width:400px"> 
     <br /><h2>Cookie Example</h2> 

    <?php 
     // print_r($_COOKIE); 
     echo "<strong>Cookie has been Created:</strong>&nbsp;&nbsp;&nbsp;".$site_name; 
     echo "<br>"; 
     if(isset($_COOKIE['site_name'])) 
     { 
     echo "<br>"; 
     echo "<strong>wellcome back</strong>"; 
     echo "<br>";echo "<br>";echo "<br>"; 
    } 
    else 
    { 
     echo "<br>"; 
     echo "<strong>Wellcome</strong>"; 
    } 

    ?> 

     <a href="visit1.php">Visit 1</a>&nbsp;&nbsp;|&nbsp;&nbsp; 
     <a href="visit2.php">Visit 2</a>&nbsp;&nbsp;|&nbsp;&nbsp; 
     <a href="visit3.php">Visit 3</a> 

是否有任何其他方式来获取访问者的数据。

+0

没有保存到数据库? –

+0

是没有保存在数据库中 –

回答

-1

您需要使用IP地址,这将是您在dbtable中的唯一条目 将针对此ipaddress的搜索存储在另一个dbtable中。 向他展示每次访问的结果 首先检查用户是否在dbtable中有一个条目,如果没有,那么第一个条目将进入该表,并且适当的搜索将被输入到已链接到该主表的第二个dbtable。 如果您在使用cookie,如果在任何情况下cookie被删除,您可能会丢失用户数据,并且必须每次setcookie并且必须维护该特定cookie的数据库条目,这可能没有帮助。 而是将获取的值存储到cookie中。您无需在每次访问页面时都获取表格。

+1

使用IP地址将是一个坏主意。由于许多用户不会拥有静态地址,他们将不时使用新地址访问,并且无数据。更糟的是,其他用户可能会看到您的早期访问。即使数据可能在用户清除他/她的cookies时丢失,cookie解决方案也不会更好。 –

+0

但我想用cookies来做 –

+0

谢谢Karl的纠正。我没有这样想过...... 你可以为每个用户设置一个独特的cookie。使用该cookie名称创建文件夹,为每次访问维护xml格式的数据。由于您不想使用数据库并为此次访问维护cookie,因此每次用户访问您的网站时都会增加此数据库。可能会有所帮助 –

0
  1. 页面(出现在历史中)应尽可能短。为每个页面分配一个唯一的ID。

  2. 您应该制定一个方法,它将一系列页面ID存储在一个简单的字符串中。您应该编写将一组页面转换为该字符串的例程,以及创建该字符串数组的一个例程。

  3. 该字符串应该存储在cookie中。你应该编写函数,它创建一个空的历史数组(它是微不足道的),将一个项目添加到历史记录(它不是,你有处理重复),还提到了:将历史数组转换为字符串,前后。

  4. 因此,如果这些例程已经准备就绪,您可以在每个页面上添加“添加页面到历史记录”功能。

即使是这样简单的事情应该设计,否则你就输了。

相关问题