10. februar 2006 - 11:33Der er
16 kommentarer og 1 løsning
random kodeord, som ikke er at finde i forvejen i databasen
Hej
Jeg har som ide, at lave et random-kodeord på ti cifre/bogstaverm som jeg kan sætte ind i et felt i nedenstående tabel.
Det er vigtigt for mig at den kan lave et kodeord, der ikke findes i forvejen i databasen.....
På forhånd tak
-------------------- CREATE TABLE `nyhedsbrev` ( `id` int(11) NOT NULL auto_increment, `navn` text NOT NULL, `email` text NOT NULL, `kodeord` text NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM;
Hvis det er til et aktiveringslink er en md5-hashet nok på sin plads - selvom det godt kan ske at der findes to ens - men jeg tror dette er mere teori end praksis da sandsynligheden er minimal.
Kan du ikke bare lave email uniq, og tjek om den findes inden du opretter brugeren. derefter kan du jo bare sætte md5('email'); og tage de første/sidste 10 tegn?
Hvis kodeordet er unikt, har du naturligvis sat det felt til at være unikt i DB'en ;o)
Så kan du blot prøve at indsætte - og undertykke fejl: @mysql_query( $SQL );
Hvis mysql_errno() efterfølgende er 1062, eksisterer kodeordet i forvejen - og du genererer et nyt kodeord, som du indsætter. Det kan gøres i en simpel while-løkke :)
overgreat, du har ikke lige kommenteret på, hvorfor unikhed er et krav - det har jeg aldrig selv stødt på og jeg har set en del applikationer efterhånden, så jeg undrer mig lidt :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.