Avatar billede peppino Nybegynder
25. juli 2002 - 13:14 Der er 14 kommentarer og
1 løsning

aktiverings kode

Hej!

Hvordan laver man en aktiverings kode til sit bruger system?
F.eks. Når der er en der opretter sig får han/hun en mail hvor han/hun skal aktiver sig for at hans/hendes bruger virker.

/Peppino
Avatar billede cms Nybegynder
25. juli 2002 - 13:21 #1
Du skal bruge et felt i din database (Access?) af typen varchar(50) fx

function MakeCode(count){
randchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789";
s = "";
for (var i=0;i<count;i++)
  s += randchars.charAt(Math.random() * (randchars.length-1));
return s;
}

Indsæt så værdien af ovenstående funktion.
Du skriver fx
var aktiveringskode = MakeCode(30);

for en aktiveringskode med en længde på 30
Avatar billede eagleeye Praktikant
25. juli 2002 - 13:22 #2
Jeg har en side som man linker til via en mail og man så skal trykke OK for at acceptere man vil være medlem...Vil du se siden?
Avatar billede cms Nybegynder
25. juli 2002 - 13:26 #3
bruger du vbscript eller jscript?
Avatar billede peppino Nybegynder
25. juli 2002 - 13:26 #4
cms>>> jeg forstår ikke lige helt hvad det er du mener
eagleeye>>> Ja jeg vil gerne se siden
Avatar billede tmceu Praktikant
25. juli 2002 - 13:27 #5
Hvor meget ved du selv/har du allerede lavet ?

Konceptet kunne være noget i stil med dette:

På din bruger tabel tilføjer du 2 felter, aktiv (med default = false/nej)+ aktiveringskode

Ved oprettelse gemmer du eks. Session.SessionID i feltet aktiveringskode, alternativt laver du en funktion der genererer x antal tilfældige karakterer.

Derefter udsender du en mail med et link der eks. kunne hedde www.dinside.dk/activate.asp?code=xxxxxxx

I filen activate.asp kontrollerer du værdien af Request.QueryString("code") op mod feltet i databasen. Er dette korrekt, ændrer du aktiv flaget til true/ja og sletter evt. aktiveringskoden.

Samme fremgangsmåde kan eks. anvendes ved glemt password. Hvis en bruger anmoder at få fremsendt sit password, sætter du aktiv = false/nej, opdaterer aktiveringskoden og sender en lign. mail med samme link.
Avatar billede cms Nybegynder
25. juli 2002 - 13:27 #6
Det samme i VBScript:

function MakeCode(count)
  Dim randchars
  randchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789"
  Dim s = ""
  Randomize
  For I = 0 To Count-1
    s = s + Mid(randchars, Int(Rnd * (Len(randchars)-1)), 1)
  Next
  MakeCode = s
end function

Indsæt så værdien af ovenstående funktion.
Du skriver fx:
Dim aktiveringskode
aktiveringskode = MakeCode(30)
Avatar billede eagleeye Praktikant
25. juli 2002 - 13:31 #7
Ok.. Jeg har et login sysytem og når man opretter sig sætter jeg en kolonne (account_valid) til 0 og så sender jeg en mail den email adresse som fok har opgiver med et link i: www.xxx.dk/login/godkend.asp?username=VALGTBRUGERNAVN
Siden bliver vist og man skal trykke på en OK knapå for at accepter og så bliver account_valid sat til 1 og man bliver også automatisk logget ind...:


<%
Response.Buffer = true
mode = "askforuseraccept"
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  username = Request.Form("user")
  mode = "accepted"
  Response.Expires = Now() - 1000
else
  username = Request.QueryString("username")
end if

if username = "" then
  Response.Redirect("login.asp")
end if
Error_Code = 0

%>
<HTML>
<head>
<META HTTP-EQUIV="Expires" CONTENT="Mon, 01 Jan 1995 00:01:01 CST">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<link rel="StyleSheet" href="../style1.css" type="text/css">
</head>
<body bgcolor="#EDEEDD">
<center>
<!--#include file="dsn.asp"-->
<%
if mode = "accepted" then
  strSQL= "UPDATE dp_members SET account_valid = 1 WHERE username = '" & username & "';"
  Conn.Execute(strSQL)
  strSQL= "SELECT * FROM dp_members WHERE username = '" & username & "';"
  set rs = Conn.Execute(strSQL)
  %>
  <form method="post" name="loginform" action="login_chk.asp">
  <input type="hidden" name="username" value="<%=rs("username")%>">
  <input type="hidden" name="password" value="<%=rs("userpassword")%>">
  </form>
  Din bruger profil er nu aktiv. Du bliver automatisk logget ind. <br>
  Hvis der ikke sker noget så tryk <a href="login.asp">her</a> for at logge ind.
  <script language=javascript>
    document.loginform.submit()
  </script>
  <%
else
  Set rs = Server.CreateObject("ADODB.RecordSet")
  strSQL= "SELECT * FROM dp_members WHERE username = '" & username & "';"
  Set rs = Conn.Execute (strSQL)

  if (rs.EOF AND rs.BOF) then
    'Bruger findes ikke
    Error_Code = 1
  else
    if (Clng(rs("account_valid")) = Clng(1)) then
    'Brugeren er valid
      Error_Code = 1
    else
    %>
    Velkommen til xxxxxx Forum, du mangler kan at godkende dit brugernavn
    så kan du logge ind i forum med det samme efter det. <br>
    Din profil bliver aktiv ved at trykke på godkend knappen.
    <form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
    <input type="hidden" name="user" value="<%=username%>">
    <input type="submit" name="Godkend" value="Godkend">
    </form>
    <%
    end if
  end if
end if

Conn.Close

if Error_Code = 1 then
  Response.Clear
  Response.Redirect("login.asp")
end if
%>
</center>
</body>
</HTML>
Avatar billede cms Nybegynder
25. juli 2002 - 13:38 #8
Eagleeye: Her tjekker du jo så ikke om den givne email-adresse er 'valid', idet du ikke medsender nogen kode
Avatar billede peppino Nybegynder
25. juli 2002 - 13:40 #9
cms>>> Skal jeg sætte:
function MakeCode(count)
  Dim randchars
  randchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789"
  Dim s = ""
  Randomize
  For I = 0 To Count-1
    s = s + Mid(randchars, Int(Rnd * (Len(randchars)-1)), 1)
  Next
  MakeCode = s
end function

ind i html eller ?
Avatar billede eagleeye Praktikant
25. juli 2002 - 13:42 #10
Det er kun den side som godkender, mail bliver lavet på en anden side.
Avatar billede eagleeye Praktikant
25. juli 2002 - 13:45 #11
Min mail indeholder ingen kode den sender en tekst ud hvor der står:

Velkommen til xxx Forum.

For at din brugerprofil kan bruges skal du aktivere den via dette link:
www.xxx.dk/login/godkend.asp?username=VALGTBRUGERNAVN

Hilsen Eagleeye

Sådan ca.. men koden ligger på serveren.
Avatar billede peppino Nybegynder
25. juli 2002 - 13:47 #12
cms>>> har fået det til at virke, Tak for hjælpen
Avatar billede cyberkox Nybegynder
25. juli 2002 - 13:48 #13
Lytter med...
Avatar billede peppino Nybegynder
25. juli 2002 - 13:58 #14
det virker ikke lige helt endnu cms.
Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument: 'Mid'

/nypeppino.dk1/addbruger.asp, line 36

linje 36:
s = s + Mid(randchars, Int(Rnd * (Len(randchars)-1)), 1)
Avatar billede peppino Nybegynder
05. august 2002 - 16:26 #15
lukket.
Cms skriv hvis du vil have point.
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