我想在用户第一次访问我的网页时给他们一个随机数
i want to give the user a random number the first time they come on my webpage
我想这样做,以便他们可以匿名浏览我的内容,但仍然能够在其他设备上同步通知。
您可能想在 php 中使用 rand() 函数。
<?php
echo rand();
?>
您可以在此处找到更多信息:
http://php.net/manual/en/function.rand.php
然后将其存储在您的数据库或会话中。
看你有没有用过session,这里有一个很好的教程:
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
希望对您有所帮助!
希望对您有所帮助。试试下面的代码。
uniqid(rand(),true)
在 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。它来自 Microsoft 世界,提供了最多的熵。有几种生成 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 通知更新请求。
您当然也可以选择保存在 public cookie 中,使 JS 可以使用该值。
我想这样做,以便他们可以匿名浏览我的内容,但仍然能够在其他设备上同步通知。
您可能想在 php 中使用 rand() 函数。
<?php
echo rand();
?>
您可以在此处找到更多信息:
http://php.net/manual/en/function.rand.php
然后将其存储在您的数据库或会话中。
看你有没有用过session,这里有一个很好的教程:
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
希望对您有所帮助!
希望对您有所帮助。试试下面的代码。
uniqid(rand(),true)
在 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。它来自 Microsoft 世界,提供了最多的熵。有几种生成 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 通知更新请求。
您当然也可以选择保存在 public cookie 中,使 JS 可以使用该值。