Avatar billede dingo2 Nybegynder
30. september 2006 - 15:14 Der er 23 kommentarer

hvor sætter jeg denne kode

Jeg har stillet ? før, men uden svar...
Jeg fandt i et gammelt ? her på eksperten lidt kode der var lige hvad jeg skulle bruge.

Men kan ikke rigtig hitte ud af hvad og hvor det skal sættes ind.

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)

Jeg har en side, hvor folk registrer sig.. formoder den skal sættes ind der...

når de har registreret sig, går den vidre til en ny side hvor der er et lille script som sender email, der derefter redirect'er til en oplysnings side...

håber det er beskrevet godt nok.
Dingo2
Avatar billede keysersoze Guru
30. september 2006 - 15:43 #1
din function kan du lægge hvor du har lyst til - mest normalt er det vidst at lægge functions i toppen af siden.

Derefter kan du bruge "MakeCode(x)" hvor du har lyst til og hvor x altså er et tal svarende til længden af den kode du ønsker at få lavet. "MakeCode(x)" kan du altså lægge direkte i din sql eller hvis koden skal bruges til noget andet så læg

Dim aktiveringskode
aktiveringskode = MakeCode(30)

lige under din function og du kan herefter benytte variablen aktiveringskode hvor du har lyst til på den pågældende side.
Avatar billede dingo2 Nybegynder
30. september 2006 - 15:57 #2
ok.. det er jeg lidt med på.

Jeg bruger DW så skal lige være helt med.
Jeg sætter koden i toppen.

og har en formular hvor der bliver tastet email og navn.
og så skal jeg så også have genereret den her kode, som jeg så kan bruge til at folk skal klikke på, når de bekræfter deres medlemsskab.

har prøvet lidt forskelligt, men er vist lidt galt på den
Avatar billede keysersoze Guru
30. september 2006 - 15:59 #3
styrer du det via en database eller?
Avatar billede dingo2 Nybegynder
30. september 2006 - 16:04 #4
ja, access db
Avatar billede dingo2 Nybegynder
30. september 2006 - 16:06 #5
ideen er at jeg har en form.
og når folk intaster deres info, skal den så tilføje
den 30 tegns kode i et felt i databasen.
som jeg så kan bruge til aktivering af folk..

håber du er med
Avatar billede keysersoze Guru
30. september 2006 - 16:08 #6
du må have en side hvor selve database-arbejdet sker - og det er her du skal lægge functionen i toppen samt kalde functionen sådan;

aktiveringskode = MakeCode(30)

så kan du bruge variablen "aktiveringskode" til både at lægge i databasen og til at sende ud sammen med mailen.
Avatar billede dingo2 Nybegynder
30. september 2006 - 16:11 #7
ok.. prøver lige
Avatar billede dingo2 Nybegynder
30. september 2006 - 16:18 #8
Ok, har lige lavet en lille prøve, så jeg ikke ødelægger det jeg har.

Seid er det felt i datbasen der skal indeholde koden.

på den originale side, trykker man opret, og den går vidre til et script som sender det operret til personens email.

håber det giver dig et bedre overblik over hvad jeg har gang i

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include virtual="/pokerfreak/Connections/pokerfreak.asp" -->
<%
Dim MM_editAction
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
Dim MM_abortEdit
MM_abortEdit = false
%>
<%
If (CStr(Request("MM_insert")) = "form1") Then
  If (Not MM_abortEdit) Then
    ' execute the insert
    Dim MM_editCmd

    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_pokerfreak_STRING
    MM_editCmd.CommandText = "INSERT INTO brugerdata ([user], email, seid) VALUES (?, ?, ?)"
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 50, Request.Form("textfield")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 202, 1, 50, Request.Form("textfield2")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 50, Request.Form("seid")) ' adVarWChar
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    ' append the query string to the redirect URL
    Dim MM_editRedirectUrl
    MM_editRedirectUrl = "/pokerfreak/brugerkig.asp"
    If (Request.QueryString <> "") Then
      If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
        MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
      Else
        MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
      End If
    End If
    Response.Redirect(MM_editRedirectUrl)
  End If
End If
%>
<%
Dim nybruger
Dim nybruger_cmd
Dim nybruger_numRows

Set nybruger_cmd = Server.CreateObject ("ADODB.Command")
nybruger_cmd.ActiveConnection = MM_pokerfreak_STRING
nybruger_cmd.CommandText = "SELECT * FROM brugerdata"
nybruger_cmd.Prepared = true

Set nybruger = nybruger_cmd.Execute
nybruger_numRows = 0
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="POST" action="<%=MM_editAction%>">
  <label>navn
  <input type="text" name="textfield" />
  </label>
  <p>
    <label>email
    <input type="text" name="textfield2" />
    </label>
  </p>
  <p>
    <label>opret
    <input type="submit" name="Submit" value="Submit" />
    </label>
  </p>
  <p>
    <input name="seid" type="hidden" id="seid" value="<%=(nybruger.Fields.Item("seid").Value)%>" />
    <input type="hidden" name="MM_insert" value="form1">
</p> 
</form>
</body>
</html>
<%
nybruger.Close()
Set nybruger = Nothing
%>
Avatar billede keysersoze Guru
30. september 2006 - 16:21 #9
hvor og hvad har du prøvet? og med hvilket resultat?
Avatar billede dingo2 Nybegynder
30. september 2006 - 16:24 #10
har prøvet i mit andet script.
men som du beskriver det skal jeg have 2 sider
det har jeg ikke.

det hele køre fra 1 side. som eksemplet her.

jeg har prøvet at sætte koden i toppen, men kan ikke finde ud af hvor jeg skal sætte resten.

sansynligvis fordi jeg misforstår hvor og hvordan jeg skal bruge Dim aktiveringskode
aktiveringskode = MakeCode(30)

går ud fra at det er i forbindelse med seid hvor jeg gerne vil have data til at blive sat ind.
Avatar billede keysersoze Guru
30. september 2006 - 16:28 #11
når nu det er på samme side så er eneste forskel at det bare skal sættes ind i den blok der omhandler indsætningen - dvs omkring linie 19.

seid er vel brugerens id - så et forsigtigt gæt må lyde på at du skal oprette en password-kolonne?
Avatar billede dingo2 Nybegynder
30. september 2006 - 16:37 #12
seid er bare lavet til den kode som skal genereres.

forstår jeg dig ret at det skal se sådan her ud


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include virtual="/pokerfreak/Connections/pokerfreak.asp" -->
<%
Dim MM_editAction
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
Dim MM_abortEdit
MM_abortEdit = false
%>
<%
If (CStr(Request("MM_insert")) = "form1") Then
  If (Not MM_abortEdit) Then
    ' execute the insert
    Dim MM_editCmd


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
Dim aktiveringskode
aktiveringskode = MakeCode(30)


    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_pokerfreak_STRING
    MM_editCmd.CommandText = "INSERT INTO brugerdata ([user], email, seid) VALUES (?, ?, ?)"
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 50, Request.Form("textfield")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 202, 1, 50, Request.Form("textfield2")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 50, Request.Form("seid")) ' adVarWChar
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    ' append the query string to the redirect URL
    Dim MM_editRedirectUrl
    MM_editRedirectUrl = "/pokerfreak/brugerkig.asp"
    If (Request.QueryString <> "") Then
      If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
        MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
      Else
        MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
      End If
    End If
    Response.Redirect(MM_editRedirectUrl)
  End If
End If
%>
<%
Dim nybruger
Dim nybruger_cmd
Dim nybruger_numRows

Set nybruger_cmd = Server.CreateObject ("ADODB.Command")
nybruger_cmd.ActiveConnection = MM_pokerfreak_STRING
nybruger_cmd.CommandText = "SELECT * FROM brugerdata"
nybruger_cmd.Prepared = true

Set nybruger = nybruger_cmd.Execute
nybruger_numRows = 0
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="POST" action="<%=MM_editAction%>">
  <label>navn
  <input type="text" name="textfield" />
  </label>
  <p>
    <label>email
    <input type="text" name="textfield2" />
    </label>
  </p>
  <p>
    <label>opret
    <input type="submit" name="Submit" value="Submit" />
    </label>
  </p>
  <p>
    <input type="hidden" name="MM_insert" value="form1">
</p> 
</form>
</body>
</html>
<%
nybruger.Close()
Set nybruger = Nothing
%>


jeg er jo ikke en haj til det her kode, plejer mest bare at bruge de funktioner der nu er i Dreamweaver
Avatar billede keysersoze Guru
30. september 2006 - 16:45 #13
så langt så godt - nu burde du i hvert fald have et password i variablen "aktiveringskode", som du kan bruge hvor du har lyst.
Avatar billede dingo2 Nybegynder
30. september 2006 - 16:47 #14
kommer ikke noget frem på siden...

den siger bare fejl nu
Avatar billede keysersoze Guru
30. september 2006 - 16:52 #15
du bliver altså nødt til at hjælpe hvis du vil have hjælp....

har du ændret noget siden ovenstående? hvilken fejl?

p.s. jeg ved ikke hvor meget du skal kode eller noget, men det kan stærkt tilrådes at undgå for meget drag/drop og færdige funktioner hvis du skal lave meget - det giver måske en langsommere start, men i løbet af kort tid vil det blive meget lettere at arbejde med asp hvis man ved præcis hvad man laver.
Avatar billede dingo2 Nybegynder
30. september 2006 - 17:05 #16
har ikke ændret noget, den viser bare http 500 internal bla bla

Ved godt at drag n drop ikke er det bedste i verden, men med meget at det jeg skal lave går lyn hurtigt den vej, og jeg plejer at lærer lidt hen ad vejen, som jeg kan bruge senere.

nu kører jeg også med den nye explorer 7.
kan være at den ikke viser de fejl som 6 altid gjorde.

på den måde kunne man altid få en ide om hvad man havde lavet forkert.

kan man ikke lave en test på det lille script
så den bare skriver det ud på siden...

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
Avatar billede dingo2 Nybegynder
30. september 2006 - 17:07 #17
nu skriver den

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/pokerfreak/bt-test.asp, line 24

Dim s = ""
------^
Avatar billede keysersoze Guru
30. september 2006 - 17:55 #18
så lav det om til

function MakeCode(count)
  randchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789"
  Randomize
  For I = 0 To Count-1
    s = s + Mid(randchars, Int(Rnd * (Len(randchars)-1)), 1)
  Next
  MakeCode = s
end function
aktiveringskode = MakeCode(30)
Avatar billede dingo2 Nybegynder
30. september 2006 - 19:19 #19
nu skriver den ikke fejl mere.

men hvordan kalder jeg den helt precis

<%= ("aktiveringskode") %>
Avatar billede keysersoze Guru
30. september 2006 - 19:28 #20
<%=aktiveringskode%>
" & aktiveringskode & "

... alt afhængig af hvor du vil bruge det
Avatar billede dingo2 Nybegynder
30. september 2006 - 19:36 #21
ok prøver lige igen
Avatar billede keysersoze Guru
26. oktober 2006 - 13:35 #22
kommet videre?
Avatar billede dingo2 Nybegynder
26. oktober 2006 - 14:23 #23
har lige haft lidt pc problemmer, men nej er ikke kommet vidre, det så ud til at virke da den ikke længere sagde fejl, men jeg kan stadig ikke se det.
Checker op på det i løbet af de næste par dage, da jeg syntes det er den bedste løsning istedet for at skulle bruge brugernavn som link....

Vender lige tilbage en af dagene
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