生成唯一的随机id时,点击链接php


generate unique random id when click on link php

我需要在用户的每次点击链接上创建唯一的id。代码为

<a class="popup-text" href="examplelink&aff_sub=<?php echo $up_id; ?>" data-toggle="modal">Upto Rs.10000 Cashback LED TVs 
+ Get additional upto Rs. 4 Cashback from afft</a>

当用户点击该链接时,应自动生成$up_id$up_id应该在用户每次点击该链接时更改。$up_id来自以下代码

<?php 
$up_id=md5(uniqid(rand(), true)); 
?>

但是我每次都得到相同的id

你可以用javascript代替PHP生成随机数,试试下面的代码:

<a class="popup-text" href="examplelink" onclick="location.href=this.href+'?&aff_sub='+Math.floor((Math.random()*1000)+1);return false;" data-toggle="modal">Upto Rs.10000 Cashback LED TVs 
         + Get additional upto Rs. 4 Cashback from afft</a>

最佳解决方案是,获取当前时间戳并取该st的md5()

$up_id = md5(current time stamp);

您可以使用以下函数轻松实现此功能:

function random_string($length)
{
   $string = "";
   $chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
   $size = strlen($chars);
   for ($i = 0; $i < $length; $i++) {
       $string .= $chars[rand(0, $size - 1)];
   }
   return $string; 
}

这里首先生成一个空字符串,然后定义一个包含所有所需字符的字符串。在计算完字符数之后,就可以开始填充新字符串了。你只需要使用for循环就可以了。每次调用循环内容时,会有一个随机字符(来自$char)添加到空字符串中。

使用这个函数(例如,如果您想将ID存储在一个变量中)只需输入:

$password = rand_string(15) //the number specified in brackets is the amount of characters in your password

因此,使用这个函数,您可以总是生成一个随机字符串(在您的情况下,是一个唯一的ID)。

如果你遇到任何问题,请告诉我。