Någon som vet hur jag kan få till ett 10 - 12 siffrigt stort tal?
Jag använder rand(); men får det inte att fungera. Det är ju ett maxtak på hur stort tal man kan använda. Man ska väl kunna komma runt detta på något sätt?
Randomproblem
6 svar · 206 visningar · startad av Marcus
Jag skulle verkligen behöva hjälp med detta, jag får liksom inte till det som jag vill. Nu har dock frågeställningen ändrat sig lite.
Jag håller på med ett aktiveringskods-script och kom på en ganska viktig punkt.
Jag har byggt upp det såhär:
members
----------
|
|_____activated (ja?/nej?)
|_____activationnumber, unikt värde i databasen.
Om jag använder rand() så får jag ju ett random tal men hur ser jag till så att det talet inte finns i databasen???
Finns det ett sätt att generera ett tal slumpmässigt som INTE finns i databasen?
MYCKET tacksam för svar :-)
Inte för att jag vet om detta är ett så speciellt bra sätt att göra det på, men du kan ju testa och se om det funkar som du vill ha det
$MIN_RAN = 0;
$MAX_RAN = 9;
$tal = "";
srand((double)microtime()*1000000);
while(strlen($tal) <= 12)
{
$n = rand($MIN_RAN,$MAX_RAN);
$tal = $tal.$n;
}
(int)$tal;
/Staffan
------------------
Spectator Of Suicide
http://www.larp.com/vampyrlajv/
$user_id = md5(uniqid("generatorstring"));
Generar en unik användare id. Byt ut 'generatorstring' mot något eget.
/Nisse
------------------
www.phpfunctions.com
Du måste tycka jag är dum nu...men...
vad menar du med generatorstring?
Problemet kvarstår väl ändå att jag fortfarande inte vet om ett likadant(mot all förmodan) faktiskt finns i databasen?!
Denna metoden generear en 32bokstavers lång sträng med en blanding av siffor och stora bokstäver. Det blir en chans på billjonen att den generar samma id.
generatorstring kan vara vad som helst.
------------------
www.phpfunctions.com
Tack :-)
Jag har gjort så nu att det slumpmässiga talet trycks in i databasen eftersom det ska agera aktiveringsnummer senare. Så fort talet har använts så tas det bort och det innebär ju att det kommer att vara rätt så tomt i den kolumnen i databasen. På det sättet så är ju risken för ett likadant tal nästan lika med 0. :-)