我想这样做,以便他们可以匿名浏览我的内容,但仍然可以在其他设备上同步通知。
答案 0 :(得分:1)
有几种方法可以在PHP中使用uniqueID。然而,并非所有这些都像你想象的那样独特。
http://php.net/manual/en/function.rand.php
$userId = rand(1, 99999999);
这个是非常糟糕的依赖,因为随机性就像掷骰子。很有可能它会使同一个值加倍。
http://php.net/manual/en/function.uniqid.php
$userId = uniqid('prefix', true);
更好的建议,但在处理用户关键数据时仍然不会失败。第二个参数为您提供了更多的熵
唯一ID的最常用变体是目前的GUID。来自微软世界,它提供了最多的熵。有几种生成GUID的方法
在Windows托管的PHP实现上:
http://php.net/manual/en/function.com-create-guid.php
$userId = com_create_guid();
当您有权访问PECL
时安装http://pecl.php.net/package/uuid
$userId = uuid_create();
或创建自己的实施 例如
function getGUID(){
if (function_exists('com_create_guid')){
return com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
}
userId最好存储在Session变量中。根据所使用的PHP系统,它可能类似于:
$_SESSION['userID'] = $userId;
并在其他请求中检索(转动代码示例),就像AJAX请求通知更新一样。
您当然也可以选择保存在公共cookie中,使JS值可用。
答案 1 :(得分:0)
你可能想在php中使用rand()函数。
<?php
echo rand();
?>
您可以在此处找到更多相关信息:
http://php.net/manual/en/function.rand.php
然后将其存储在您的数据库或会话中。
根据您之前是否使用过会话,这里有一个很好的教程:
http://www.w3schools.com/php/php_sessions.asp
你可以这样做:
<?php
// Start the session
session_start();
$random_no = rand();
// Set session variables
$_SESSION["visitor_number"] = $random_no;
?>
rand()的一个问题是,根据访问您网站的访问者数量,您最终可能会出现重复项。值得存储进行一些检查以确保不会导致重复。
这个帖子可能会帮助你:
Generating UNIQUE Random Numbers within a range - PHP
希望有所帮助!
答案 2 :(得分:0)
我希望这会有所帮助。请尝试以下代码。
uniqid(rand(),true)