Avatar billede f_rollo Nybegynder
01. august 2004 - 14:54 Der er 8 kommentarer og
1 løsning

Søger script: Nyhedsliste-tilmelding med emailbekræftelse

Hej

Jeg leder efter et script eller info om hvordan man selv laver noget lign.

Det jeg skal bruge er et script i asp, hvor at brugeren taster sin email i en form på siden, derefter modtager en mail som enten skal bekræftes/besvares eller der er et link som brugeren trykker på for at blive tilmeldt listen

Linket må ikke bare være noget lign www.domain.dk/listetilmeld.asp?email=noget@noget.dk

Hvor at en 'snyder' så blot ændre i adresselinien...

Den skal også fungerer med afmelding igen...
Avatar billede hmmhelpinghmm Nybegynder
01. august 2004 - 15:13 #1
jeg kn give dem et unikt link som ikke kan gættes, men kan ikke asp, så skal over i php, men det duer vel ikke?
Avatar billede KingMedia Novice
01. august 2004 - 16:05 #2
Hvis du har adgang til komponentet GUIMaker kan du bruge følgende

<%
Set MyGuid = Server.CreateObject ("GuidMakr.GUID")
UID = MyGuid.GetGUID
%>

og så i den tilmeldingsurl der bliver tilsendt brugeren så lave noget a'la

<a href="http://www.domain.dk/listetilmeld.asp?UID=<%= UID %>">Tilmeld</a>

/Mads
Avatar billede KingMedia Novice
01. august 2004 - 16:08 #3
Det vil give dig en UID streng a'la

{E2785382-90AD-4A22-BB9E-B6B38D25985A}

(GUID = Global Unique IDentifier)

så skal du selvfølgelig når de tilmelder sig først, lagre det GUID i databasen, og derefter tjekke op på om det er aktiveret eller ej når de klikker på linket i den modtagne mail :)

/Mads
Avatar billede KingMedia Novice
01. august 2004 - 16:17 #4
måske kan det her bruges.

jeg har modificeret min egen rugertilmelding + aktiveringsdel så det nogenlunde er som du beskriver.

------------------------
Set MyGuid = Server.CreateObject ("GuidMakr.GUID")
UID = MyGuid.GetGUID
email = Trim(request.Form("email"))
   

'## Opretter pågældende i databasen som har skrevet sin email i email feltet og klikket "tilmeld"
   
conn.execute("INSERT INTO dinDb.dinTabel ( `UID`, `email`, `Activated` )VALUES ('" & UID & "', '" & email & "', 'false' )")

'## email bekræftelses delen

set emailRs = conn.execute("SELECT * FROM dinDb.dinTabel WHERE UID = '" & UID & "'")
UID  = emailRs("UID")
email = emailRs("email")

'## Selve indholdet af mailen

besked = besked & "<font size=2 face=Tahoma>"
besked = besked &  "Tak for din tilmelding.<br /><br />"
besked = besked &  "For at bekræfte din tilmelding, skal du klikke på det nedenstående link.<br />"
besked = besked &  "Er linket brudt, så copy / paste det til din adresselinie<br /><br /><br />"
besked = besked &  "<a href=""http://www.domain.dk/listetilmeld.asp?UID= " & UID &""">Tilmeld</a>"
besked = besked & "</font><br /><br /><br />"
besked = besked & "<font size=1 face=Tahoma>-----------------------------------------------------------"
besked = besked & "<br>Denne email er sendt automatisk fra:<br />"
besked = besked & "<a href=http://www.domain.dk/ target=_new>http://www.domain.dk</a><br /><br />"
besked = besked & "<br />-----------------------------------------------------------"
besked = besked & "</font>"
   

'## Jmail opsætning - send bekræftelsesmail

set msg = Server.CreateOBject( "JMail.Message" )
msg.ContentType = "text/html"
msg.Logging = true
msg.silent = true
msg.From = "mail@domain.dk"
msg.FromName = "Liste Tilmelding"
msg.AddRecipient email
msg.Subject = "Listen - Bekræftelse"
msg.Body = besked



if not msg.Send("smtp.mail.dk") then
    Response.Write ""
    Response.Write msg.log
else
    Response.Write ""
End If



/Mads
Avatar billede KingMedia Novice
01. august 2004 - 16:21 #5
og så skal du selvfølgelig tjekke op på, om det pågældende UID eksisterer , eller om det allerede er aktiveret.. altså når en bruger klikker på linket  :)

/Mads
Avatar billede KingMedia Novice
01. august 2004 - 16:38 #6
aktiveringsdelen

-------------------

<%

UID = Request.QueryString("UID")

Set LoginCheck = conn.Execute("SELECT * From dinDb.dinTabel WHERE UID = '" & UID & "' AND Activated = 'false'")

If LoginCheck.EOF OR LoginCheck.BOF Then
    Response.Write "<p class=""Err"">Du er allerede tilmeldt !" &_
Else
    conn.execute("UPDATE dinDb.dinTabel SET Activated = 'true' WHERE UID = '" & UID & "'")
    Response.Write "<p class=""loginHead"">Du er nu tilmeldt !.</p>"
End If

%>

/Mads
Avatar billede f_rollo Nybegynder
01. august 2004 - 17:18 #7
Hmmm... kender overhovedet ikke GUIMaker!

Ifølge webhotellets supportsidder er denne komponent ikke installeret, men er der evt en simpel kode man kan køre for at tjekke om det er der?
Bare lige noget hvor den vil give en fejlmeddelse eller ej!
Avatar billede KingMedia Novice
02. august 2004 - 16:31 #8
Jep

Set MyGuid = Server.CreateObject ("GuidMakr.GUID")
Response.Write MyGuid.GetGuid

Er det ikke installeret, så fejler den.

ellers kan jeg smide et andet random script til dig :)

/Mads
Avatar billede KingMedia Novice
02. august 2004 - 16:45 #9
<%
Function cardKey(keySize)
  chars = "aAbBcCdDeEfFgGhHijJkKLmMnNopPqQrRsStTuUvVwWxXyYzZ1234567890"
  strKey = ""
  randomize
  for i = 1 to keySize
    index = Int(rnd * len(chars))+1
    strKey = strKey & Mid(chars,index,1)
  next
  cardKey = strKey
End Function

Response.Write cardKey(8) ' tallet angiver længden af strengen
%>

/Mads
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