2012-09-29 53 views
1

我正在使用一個私人消息系統,我想分配一個唯一的對話號碼,以便我可以識別多個用戶是否參加同一個對話。我想指定誰發送短信+ microtime()這樣的人的用戶名:創建一個唯一的對話號碼

$conversation_number = md5($_POST['user_id']+microtime()); 

請問這個代碼總是源於一個唯一的號碼,或者也有可能是,一不小心,就產生了相同數量的隨後的消息?

回答

1

我認爲PHP uniqid足以

從PHP DOC

如果設置爲TRUE,uniqid()將增加附加熵(使用組合的線性同餘發生器)在返回值的末尾,這增加了可能性,其結果將是獨一無二的

嘗試

uniqid('id', true) 

但是有大約在32位十六進制值3.402823669209387e + 38個不同的值(16^32)md5的你的賠率是驚人的小,會有一個複製所有相同

+1

感謝您的完整答案!+1 – mat

2

您可以使用uniqid,它用於生成唯一的ID。

+0

非常感謝你!+ 1 – mat

+0

你一直很快回復,但我認爲巴巴的解釋是非常好的,所有的答案都是正確的!我應該如何決定我必須接受哪一個?有沒有一個指導方針?;-) – mat

+0

@mattia我認爲這是沒有規則的,只是接受你喜歡的答案:) – xdazz

1

爲什麼不使用UniqId()函數?

+0

謝謝,你們都拿出相同的答案+1! – mat

+0

是的,xdazz幾秒鐘打我:) – JvdBerg