Om det finns möjlighet kan du använda ett användarid eller dylikt för att få koden unik, ex:
<användarid>-<slumpad kod>
detta skulle kunna bli 543-27653924
på så vis slipper du kolla om den är unik, under förutsättning att användarid är unikt.
7 svar · 319 visningar · startad av Fredde Mannen
Jag har min kodgenerator:
Function UnlockCode()
Length = 8
Options = "0 1 2 3 4 5 6 7 8 9"
arrValues = split(Options," ")
randomize timer
i = 1
For i = i to Length
UnlockCode = UnlockCode & CInt(arrValues(rnd*10))
Next
End function
den skall generera en åttasiffrig upplåsningskod som sedan läggs in i en databas. Hur skall jag göra för att kolla om den först finns i databasen, och om den finns generera en ny osv tills den har genererat en som inte finns, som den då lägger in!
:q
några tips? :e
Om det finns möjlighet kan du använda ett användarid eller dylikt för att få koden unik, ex:
<användarid>-<slumpad kod>
detta skulle kunna bli 543-27653924
på så vis slipper du kolla om den är unik, under förutsättning att användarid är unikt.
K@llen skrev:
Om det finns möjlighet kan du använda ett användarid eller dylikt för att få koden unik, ex:
<användarid>-<slumpad kod>
detta skulle kunna bli 543-27653924
på så vis slipper du kolla om den är unik, under förutsättning att användarid är unikt.
ingen tokig idé, ingen tokig idé.. det underlättar juh en hel del! :e
Men kom på en grej.. detta gör en sak komplicerad.. eftersom upplåsningskoden endast skall bestå av 8 siffror så blir det kruxigt när användare 10 reggas, och detta blir ännu värre när användare 100 reggas osv. därför skulle jag mer uppskatta om jag på något sätt kunde kolla fört om koden finns, och finns den tas en ny fram osv...
Alltså den kollen är ju inga problem egentligen. Även om det är mindre troligt börjar man kanske tröttna när scriptet testat runt lite.
sql = "SELECT COUNT(*) FROM tabellen WHERE unlockCode = " & unlockCode
set rs = connect.execute(sql)
if rs(0) > 0 then
' ladda om sidan och slumpa fram ett nytt
else
' skicka in koden i databasen
end if
Problemet är ju omladdning av sidan efter varje försök.
Så långt hade jag också kommit... ;) just det där fram tills att ladda om sidan.. väl i sig kanske jag kan stoppa in den övriga informationen i sessioner, då skall nog inte det vara några större problem förhoppningsvis! :e
Ah ja... jag rapporterar när jag fixat till det! ;)
Varför måste koden vara unik?
Kan du inte validera koden tillsammans med någon annan användaruppgift, dvs att användaren ska ange två uppgifter?
K@llen skrev:
Varför måste koden vara unik?
Kan du inte validera koden tillsammans med någon annan användaruppgift, dvs att användaren ska ange två uppgifter?
Ja visst kan jag göra de.. men jag tycker om att vara omständig! ;) Nåja kan juh i sig plotta lite med ena filen så är det fixat! :)
Du behöver ju egentligen inte ladda om sidan efter varje slumpning. Du skulle ju kunna lägga in det i en loop, ungefär såhär:
Do Until blnOk
intKod = UnlockCode()
strSQL = "SELECT kod FROM tabell WHERE kod = " & intKod
Set objRS = objConn.Execute(strSQL)
If objRS.EOF Then blnOk = True
objRS.Close : Set objRS = Nothing
Loop
'Lägg till intKod i databasen.