如何为每个使用PHP注册我的网站的用户生成一个独特的链接来共享

如何为每个使用PHP注册我的网站的用户生成一个独特的链接来共享,php,mysql,Php,Mysql,我需要帮助创建类似launch rock的东西。在有人注册我的网站后,他们将获得一个独特的链接/url与朋友共享。重要的是,URL是唯一的,这样我就可以看到有多少人被一个成员招募。 请帮忙! 我正在使用php和mysql,但我不知道是否需要其他东西。我需要代码方面的帮助。谢谢。不确定编码时需要多少帮助,但您可以使用uniqid生成通用ID: 然后只需将该id附加到URL中,如下所示:$uniqueid不确定编码时需要多少帮助,但可以使用uniqid生成通用id: 然后只需将该id附加到URL中,

我需要帮助创建类似launch rock的东西。在有人注册我的网站后,他们将获得一个独特的链接/url与朋友共享。重要的是,URL是唯一的,这样我就可以看到有多少人被一个成员招募。 请帮忙!
我正在使用php和mysql,但我不知道是否需要其他东西。我需要代码方面的帮助。谢谢。

不确定编码时需要多少帮助,但您可以使用uniqid生成通用ID:


然后只需将该id附加到URL中,如下所示:$uniqueid

不确定编码时需要多少帮助,但可以使用uniqid生成通用id:


然后只需将该id附加到URL中,如下所示:$uniqueid

我的意见是使用签名成员id中的MD5。

我的意见是使用签名成员id中的MD5。

创建用户帐户时,生成一个随机字符串(比如10个字符长)并通过在MySQL表中创建新列将其与帐户关联

您可以使用创建唯一的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.
function generateRandomString($length=10){
$characters='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz';
$randomString='';
对于($i=0;$i<$length;$i++){
$randomString.=$characters[mt_rand(0,strlen($characters))];
}
返回$randomString;
}
做{
$id=GeneratorDomainString(10);
}while(mysql_num_rows(mysql_查询('SELECT*FROM TABLE,其中uniq_id='$id'))!=0);
//$id现在保证是唯一的。

创建用户帐户时,生成一个随机字符串(比如10个字符长),并通过在MySQL表中创建一个新列将其与帐户关联

您可以使用创建唯一的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.
function generateRandomString($length=10){
$characters='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz';
$randomString='';
对于($i=0;$i<$length;$i++){
$randomString.=$characters[mt_rand(0,strlen($characters))];
}
返回$randomString;
}
做{
$id=GeneratorDomainString(10);
}while(mysql_num_rows(mysql_查询('SELECT*FROM TABLE,其中uniq_id='$id'))!=0);
//$id现在保证是唯一的。

获取唯一URL的最佳方法是使用加密哈希算法,如 或者从用户ID计算唯一哈希。您应该将此哈希存储在用户表中,以便轻松搜索


然后,您可以与作为GET值应用的哈希共享URL(
yourpage.com/page.php?redirect=hashvalue
),每当访问此类URL时,您都可以再次从数据库中获取正确的用户。

获取唯一URL的最佳方法是使用加密哈希算法,例如 或者从用户ID计算唯一哈希。您应该将此哈希存储在用户表中,以便轻松搜索


然后,您可以与作为GET值应用的哈希共享一个URL(
yourpage.com/page.php?redirect=hashvalue
),每当访问此类URL时,您可以再次从数据库中获取正确的用户。

任何原因您不能使用成员ID,如或GUID。

任何原因您不能使用成员ID,如或GUID。

使用openssl\u random\u pseudo\u字节,并运行bin2hex以获得真正的随机字符串,并检查它是否已存在使用(确实不太可能)。 e、 g


使用openssl\u random\u pseudo\u字节并运行bin2hex以获得真正的随机字符串,并检查它是否尚未使用(确实不太可能)。 e、 g


如果frieds用户的朋友也注册了,或者他们只是访问了您的站点,您想计算一下他们招募了多少frieds用户?您可以使用base64_encode或其他php编码函数,为每个frieds用户创建唯一的链接,并使用一些唯一的参数(例如用户名+密码)user@yankitwizzy:请不要使用
base64\u encode()
。有一个名为
base64_decode()
的函数,它将解码(duh)编码的字符串并显示用户的用户名和密码。如果您想尝试这种方法,我建议使用类似于
md5()
sha512()
的散列。我只想看看已经招募了多少人,这两种方法都很好,因为如果他的朋友也注册了,或者他们只是访问了你的网站,你想计算用户招募了多少frieds?你可以通过使用base64_encode或其他php编码函数对每个人的一些唯一参数(如用户名+密码)创建唯一链接user@yankitwizzy:请不要使用
base64\u encode()
。有一个名为
base64_decode()
的函数,它将解码(duh)编码的字符串并显示用户的用户名和密码。如果您想尝试这种方法,我建议使用类似于
md5()
sha512()
的散列。我只想看看招募了多少人,这两种方法都很好,虽然普通随机字符串的问题当然是冲突的几率比加密散列高得多。反过来说(散列比伪随机数随机性小,伪随机数用于生成随机字符串)。但是考虑到给定长度和给定字典的可能随机字符串的数量(假设所有字母和数字的大小写敏感混合),您将获得可能的ID。祝您好运,两个意外碰撞。使随机值随机的原因是无法判断相同的值是否会多次出现。这与随机性无关