dein zeug ist immer noch unvollständig - und beschränke dich bitte auf die relevanten teile
der teil wo der hash in die datenbank geschrieben wird und der wo die nachricht generiert wird reicht ;)
Kannst du vieleicht erklären wie ich es anders Lösen kann?
sorge dafür, dass du einen eindeutigen wert erhälst - die primitive und äusserst ineffiziente möglichkeit ist, einfach zu prüfen ob der hash schon in der datenbank existiert oder nicht, wenn er schon drin ist: neu generieren
zudem schaufelst du vorher zu viel mit zufallszahlen herum, das ist garnicht notwendig ;)
uniqid
siehe dazu die kommentare
wie bereits erwähnt, die chance einer kolision auf deinen md5-hash ist verschwindend gering, aber es kann durchaus passieren - und diesen fall musst du abfangen indem du einfach prüfst, ob der hash schon mal so in der datenbank steht oder nicht (das ist zwar eine abfrage mehr, aber sicher ist sicher)