我想在第一次访问我的网页时给用户一个随机数

时间:2015-03-17 08:33:30

标签: php webpage

我想这样做,以便他们可以匿名浏览我的内容,但仍然可以在其他设备上同步通知。

3 个答案:

答案 0 :(得分:1)

有几种方法可以在PHP中使用uniqueID。然而,并非所有这些都像你想象的那样独特。

兰德

http://php.net/manual/en/function.rand.php

$userId = rand(1, 99999999);

这个是非常糟糕的依赖,因为随机性就像掷骰子。很有可能它会使同一个值加倍。

UniqId

http://php.net/manual/en/function.uniqid.php

$userId = uniqid('prefix', true);

更好的建议,但在处理用户关键数据时仍然不会失败。第二个参数为您提供了更多的熵

GUID

唯一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;
    }
}

发送和存储ID

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)