Avatar billede mjall0w Nybegynder
01. juni 2003 - 11:14 Der er 13 kommentarer og
2 løsninger

Email aktivation med beskyttelse

Jeg er igang med at lave en side hvor det vil blive nødvendigt, at når en bruger oprettet en profil skal han få en mail hvori der står et link til en side han skal gå for at aktivere hans account.. Men samtidig vil jeg også gerne have sådan at andre brugere ikke bare kan knække siden med feks bare at sætte aktiver.asp?id=125 også aktivere en andens account, har regnet med at sende mail i JMAIL, men kan også godt bruge ASPmail, hvis det er "bedere"..
Håber i kan hjælpe mig..
Avatar billede somaliomar Praktikant
01. juni 2003 - 11:23 #1
Jeg går ud fra, at du gemmer bruger-informationerne i en database. En mulig løsning er, at lave et nyt felt i din bruger-tabel. Dette felt skal indeholde en random tekst når en bruger opretter en profil. Og så sender du brugeren denne kode på brugerens e-mail adresse. Brugeren kan så aktivere sin konto hvis han kender koden.
Avatar billede eagleeye Praktikant
01. juni 2003 - 11:23 #2
Et eks: Hvor man skal ind på en side og trykke på Godkend for at ens account bliver aktiv. Hvis du vil hvad man ikke kan gætte hvad man skal skrive, så kan du jo lave det sådan at man laver et random streng på 20 karakter og gemmer i en tabel sammen med brugerensID, så kan man finde brugerID ud fra den streng.
http://www.eksperten.dk/spm/357022

JMail eller ASPmail, tja som regel er det afgjort at hvilken ens web-hotel tilbyder. Men hvis du skal vælge så JMail.
Avatar billede -master-d- Nybegynder
01. juni 2003 - 11:25 #3
Jeg ved ikke hvordan du har tænkt dig at lave beskyttelse så andre brugere ikke kan knække koden, for det ville jo være uhensigtsmæssigt at lave det sådan at linket udelukkende kan aktiveres fra mailen.

Jeg ville nok lave en kode bagved som er en kryptering af hans brugerenavn eller sådan noget :

aktiver.asp?id=125&un=EAJNVJDU67

Hvis du forstår hvad jeg mener.
Avatar billede mjall0w Nybegynder
01. juni 2003 - 11:33 #4
Ja i har fat i noget af det rigtige, hvordan får man så ens DB til at skrive en random kode ?
Avatar billede mjall0w Nybegynder
01. juni 2003 - 11:33 #5
Argh 2sec kigger lige det spm eagleeye skrev
Avatar billede eagleeye Praktikant
01. juni 2003 - 11:37 #6
Dy er nød til selv at lave noget kode som kan det eks på en function som kan lave en random streng i den længde du ønsker:


function lavPassword(antal)
  tilladtkarakter = "abcdefghijklmnopqrstuvwxyz1234567890"
  str = ""
  for i = 1 to antal
    randomize
    index = Int(rnd * len(tilladtkarakter))+1
    str = str & Mid(tilladtkarakter,index,1)
  next
  lavPassword = str
end function


Response.Write "Test 20 karakter : " & lavPassword(20) & "<br>"
Avatar billede mjall0w Nybegynder
01. juni 2003 - 11:44 #7
Det som eagleeye skriver i det spm er noget af det rigtige, og master-d har også fat i det rigtige med der skal sådan en xtra beskyttelses kode på, ved bare ikke lige hvordan jeg fikser den xtra beskyttelses kode sammen
Avatar billede eagleeye Praktikant
01. juni 2003 - 11:48 #8
Jeg kan ikke hjælpe dig nu, for jeg er på vej ud af døren og er først tilbage senere idag. ;)
Avatar billede mjall0w Nybegynder
01. juni 2003 - 12:04 #9
hehe okay, jeg prøver mig bare lidt frem, men skal jo også ud at nyde det gode vejr
Avatar billede somaliomar Praktikant
01. juni 2003 - 12:09 #10
aktiver.asp?id=125&un=EAJNVJDU67

Kræver at du yderligere har et felt (un) i din bruger-tabel:

usrid  usrname      un
12      kakaofugl    DD34DFSUUS
124    he          SRE23AS3AD 
125    bol          EAJNVJDU67

Når brugeren skal aktivere sin konto kan du gøre flg.:

<%
strUserId = Request("id")
strUn = Request("un")

strSQL = "SELECT usrstatus FROM Users WHERE usrid = " & strUserId & " AND un = '" & strUn & "'"
Set Recordset = Connection.Execute(strSQL)

If Recordset.EOF Then
  'Bruger er ikke fundet
Else
  'Aktiver bruger
End If
%>
Avatar billede somaliomar Praktikant
01. juni 2003 - 12:13 #11
Når brugeren opretter en profil kan du gøre sådan her:

<%

function lavPassword(antal)
  tilladtkarakter = "abcdefghijklmnopqrstuvwxyz1234567890"
  str = ""
  for i = 1 to antal
    randomize
    index = Int(rnd * len(tilladtkarakter))+1
    str = str & Mid(tilladtkarakter,index,1)
  next
  lavPassword = str
end function

'...
strUsername = Request("usrname")
strSQL = "INSERT INTO Users (usrname, un) VALUES('" & strUsername & "', '" & lavPassword(10) & "')"

%>
Avatar billede mjall0w Nybegynder
01. juni 2003 - 12:58 #12
Så manger man bare et Ja/Nej felt i databasen
Avatar billede somaliomar Praktikant
01. juni 2003 - 13:00 #13
Du behøver ikke et Ja/Nej felt i din tabel. Du kan bare vælge, at nulstille un-feltet, når brugeren har aktiveret sin konto.
Avatar billede mjall0w Nybegynder
05. juni 2003 - 14:48 #14
Det er perfekt det i har skrevet der..
Eagleeye opretter du ikke et svar ??
Avatar billede eagleeye Praktikant
05. juni 2003 - 15:09 #15
:) det gør jeg da gerne
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester