webForumDet fria alternativet

Randomproblem

PHP

6 svar · 208 visningar · startad av Marcus

Medlem sedan juli 2000449 inlägg
Frågan#1

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?

Medlem sedan juli 2000449 inlägg
#2

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 :-)

Medlem sedan aug. 200021 inlägg
#3

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/

Medlem sedan juli 2000212 inlägg
#4

$user_id = md5(uniqid("generatorstring"));

Generar en unik användare id. Byt ut 'generatorstring' mot något eget.

/Nisse

------------------
www.phpfunctions.com

Medlem sedan juli 2000449 inlägg
#5

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?!

Medlem sedan juli 2000212 inlägg
#6

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

Medlem sedan juli 2000449 inlägg
#7

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. :-)

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)