创建访客唯一ID?

jon*_*nes 6 javascript php

我计划创建访问者唯一ID并命名为日志文件,因为现在我使用IP访问者作为日志文件名即logs/127.0.0.1.php但我认为这还不够,因为一些访问者使用共享PC的IP地址.

访问者日志文件本身作为访问者自身配置的设置位置,因此我计划添加另一个唯一ID来标识每个不同的访问者,所以让我们说日志文件:logs/127.0.0.0.1-t3451dq.php,-t3451dq为唯一ID,只要访问者在我的网站上浏览唯一的日志文件作为每个用户的设置配置(因为我使用纯文本)

目前我使用:

<?
$filename = "./logs/".$_SERVER['REMOTE_ADDR'].".php" ; //out put logs/127.0.0.1.php
$data stripcslashes($data);
// each Visitor configuration here...
// bla...bla...

/* Writing file configurations */
    $buat = fopen($filename, "w+");
    fwrite($buat, "$data");
    fclose($buat);
?>
Run Code Online (Sandbox Code Playgroud)

所以我需要$ filename添加$ unique ID作为其日志文件的名称.任何想法如何做到这一点?

row*_*ow1 10

尝试uniqid.

您可以将此唯一ID存储在用户会话或cookie中.

示例(未测试)

session_start();
if(!isset($_SESSION['uniqueID']))
{
    $_SESSION['uniqueID'] = uniqid();
}
$filename = "./logs/".$_SESSION['uniqueID'].$_SERVER['REMOTE_ADDR'].".php" ;
Run Code Online (Sandbox Code Playgroud)

使用会话意味着如果同一个用户关闭他们的浏览器(或会话到期),他们将获得一个新ID,这可能是您想要的,也可能不是.

如果您想要一个更持久的跟踪器,那么您可能更好地使用cookie,并将ID存储在cookie中(如果不存在cookie,则创建一个新ID).

if(!isset($_COOKIE['uniqueID']))
{
    $expire=time()+60*60*24*30;//however long you want
    setcookie('uniqueID', uniqid(), $expire);
}
$filename = "./logs/".$_COOKIE['uniqueID'].$_SERVER['REMOTE_ADDR'].".php" ;
Run Code Online (Sandbox Code Playgroud)

如果您不能使用cookies/session,那么您可能需要在URL查询字符串中传递ID,例如mypage.php?id = 35dfgdfg3434