2013-01-15 156 views
2

我想構建一個令牌號碼生成器。在每次通話中,都應該返回一個隨機和唯一的8位數字。我正在使用PHP和MySQL。在MySQL中,我將有一張表格,我將在每次插入新序列時生成它。生成隨機唯一序列號

如何在每次通話中生成新號碼?

令牌將用於最終用戶激活軟件(並且將在1周後過期)。所以,我需要令牌獨特而不是連續的。這更好地描述了我的需求。令牌格式將只是數字,因此它可以很容易拼寫和打字。

即使令牌過期,我也不想在以後生成已經生成的令牌。

謝謝

+0

使用Mysql自動增量並以10,000,000開始。 –

+0

是這個有效的'11223344'?或者所有數字都是唯一的'12345678'? –

+0

@ROYFinley,雖然會生成唯一的ID,但它們很難被描述爲隨機 – Crisp

回答

3

好了,這個代碼不將序列號到數據庫中,但它會返回一個序列號,8位數字。如果你只想要數字,將允許的字符變量改爲數字。

<?php 

    function generate_serial_number() { 

     $Allowed_Charaters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; 
     return substr(str_shuffle($Allowed_Charaters), 0, 8); 

    } 

?> 
+0

謝謝你的發電機,但是這不符合數字獨特的要求。當然,我可以將它插入數據庫,直到我沒有錯誤(由於相對列的唯一定義)。 –