[英]How to generate a unique link to share for every user that signs up for my website using PHP
我需要帮助来创建类似于发射岩的东西。 有人注册我的网站后,他们将获得一个唯一的链接/网址,以与朋友分享。 URL的唯一性很重要,这样我才能看到一个成员招募了多少人。 请帮忙! 我正在使用php和mysql,但不知道是否需要其他东西。 我需要代码方面的帮助。 谢谢。
不知道在编码方面需要多少帮助,但是您可以使用uniqid生成通用ID: PHP:uniqid-手册
然后只需将该ID附加到您的URL上,如下所示: http : //www.example.com/page.php? id = $ uniqueid
使用openssl_random_pseudo_bytes并遍历bin2hex以获取真实的随机字符串,并检查该字符串是否尚未使用(确实不太可能)。 例如
$bytes = openssl_random_pseudo_bytes(20); //may be nonprintable characters
$string = bin2hex($bytes);
http://de2.php.net/manual/zh/function.openssl-random-pseudo-bytes.php
我的意见是使用来自会员ID的MD5。
创建用户帐户后,生成一个随机字符串(假设长10个字符),并通过在MySQL表中创建新列将其与该帐户相关联。
您可以使用uniqid()
来创建唯一的ID。
但是要考虑冲突,您可能必须运行一个循环。 如果您不得不两次运行循环,那将是一个奇迹:
function generateRandomString($length = 10) {
$characters = ’0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’;
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[mt_rand(0, strlen($characters))];
}
return $randomString;
}
do {
$id = generateRandomString(10);
} while (mysql_num_rows(mysql_query('SELECT * FROM TABLE WHERE uniq_id = '$id')) != 0);
// $id is now guaranteed to be unique.
任何无法使用会员ID的原因,例如SO会员页面或GUID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.