webForumDet fria alternativet

Några frågor ang. asp och databaser m.m.

ASP

23 svar · 518 visningar · startad av Coccozz

Medlem sedan apr. 20032 072 inlägg
Frågan#1

Jag undrar för det första hur en if kod som skickar dig till en sida om en kryssruta är markerad. Annars skickar den dig till en annan sida.
Svårt att förklara :(
--
Sen undrar jag hur man gör för att hämta en post ur en tabell och föra över den genom att en människa skriver in ett 10bokstäver och siffror långt lösenord.
Alltså, personen kommer in på en sida, skriver i det här tio bokstäver och siffror långa lösenordet, trycker på en knapp, t.ex. aktivera, och då kopieras posten över till en ny databas. Väldigt gärna att posten tas bort i den gammla databasen också
--
Sedan undrar jag hur man gör ett mail med CDONTS och sätter in värden i det från en databas, På den här punkten skulle jag verkligen uppskatta en bra länk eftersom jag vill lära mig mer om detta ;)
--
Tror det var allt... Annars återkommer jag väl, när jag har samlat en stund igen ;)

Medlem sedan sep. 20011 722 inlägg
#2

Fråga 1:

If Request.Form("DinKnapp") = True Then
  Response.Redirect ("true.asp")
Else
  Response.Redirect ("false.asp")
End If
Medlem sedan sep. 20011 722 inlägg
#3

Fråga 2:
På sidan som kontrollerar lösenordet kan du göra så här:

 
SQLopen = "SELECT * FROM GammalTabell WHERE id = " & Request.Form("ID") & " AND Password = " & Request.Form("Password") & ""
RecSet.Open SQLopen, Connect, 2, 2 

If RecSet.EOF
  RecSet.Close
  [Lösenordet var fel]
Else
  Dim strText, strPass
  strPass = RecSet("Password")
  strText = RecSet("Kolumnnamn")
  RecSet.Close

  SQLadd = INSERT INTO NyTabell (Kolumnnamn, Password) VALUES (" & strText & ", " & StrPass & ")
  Connect.Execute SQLadd,,128

  SQLdel = "DELETE FROM GammalTabell WHERE id = " & Request.Form("ID") & ""
  Connect.Execute SQLdel,,128

  [Lösenordet var rätt, posten är ny flyttad]
End If

Sen får du självklart ändra namnen så dom passar din databas samt skapa formuläret där man skriver in lösenordet.

Medlem sedan apr. 20032 072 inlägg
#4

Tackar Kotten...Ska nu kolla upp ifall detta funkar. Men eftersom d e ni här på wF som har hjälpt så brukar d funka ;)
--
Säkkert att ingen har en bra länk till fråga 3 elr kan förklara hur man gör? :)

Medlem sedan apr. 20032 072 inlägg
#5

Förresten Kotten, ja ber på mina bara knän, men var kommer de andra kolumnerna ifrån tabellen in, ber om ursäkt om jag var otydlig, men den skall flytta över 8 kolumner ;)
Ditt skript kanske är anpassningsbart, men ja vet ju nte hur :(
Ajja. Tur att jag lär mig av alla er här på wF. En da kanske ja också kan hjälpa nån :) *elr, njae. Hoppas kan man ju... ;)

Medlem sedan apr. 20031 660 inlägg
#6

Fråga 3

HEJ!

Eftersom du verkar vara på en grundläggande nivå vill jag tipsa om JMail istället för CDONTS om du har möjlighet till det.

Annars fick jag http://www.powerasp.com/content/hintstips/asp-email.asp som första träff via google +cdonts

Medlem sedan apr. 20032 072 inlägg
#7

Jo, men jag har serverspons å han trodde att d va CDONTS som servern stödde...
Har läst igenom sidan och tror jag förstår lite av det som står där :D
Men så ville jag ju hämta en post från en databas också och det hittade jag nte där. Ska söka runt på Goggle också. Men vet någon nån bra sida är ni välkommna... :o

Medlem sedan sep. 20011 722 inlägg
#8

Coccozz du kan inte skriva ut vilka de övriga kolumnerna heter?

Medlem sedan apr. 20031 660 inlägg
#9

Om du ska stoppa in värde från RS är det endast att lägga till den med

MyBody = MyBody & "We appretiate your business " & RS("namn") & vbCrLf

Att lägga till adressaterna sker på motsvarande vis, men det måste ju loopas ut till rs.eof.

OM du hade haft JMail kunde du använt deras MailMerge, där man skapar en mall för brevet. Eftersom upprullningen av rs:et sker på servern fungerar det bättre, kort sagt.

(Innan du gör för mycket, ta reda på vad det ÄR installerat, det kan ju vara så att det finns andra komponenter installerade.)

Medlem sedan apr. 20032 072 inlägg
#10

Ok Kotten, here we go...
kolumnen som själv lösenordet är, som man skriver in heter tempid
sedan kolummnerna som skall flyttas är
fornamn
efternamn
mejl
stad
age
sex
anvn
losen
--
J.N.
OK, då förstår jag, bara en sak till...Var lägger jag databaskopplingen?
Det är bara CDONTS installerade :(
Men iaf. tror ja börjar fatta nåt nu ;)

// Coccozz

Medlem sedan apr. 20031 660 inlägg
#11

Databaskopplingen lägger du där du brukar, dvs ovanför där du behöver den. Det är alltså inget speciellt med brevsändning, om du trodde det.

skapa dns
hämta rs (mottagare)
hämta rs2 (brevinnehåll)

do until rs.eof
  skapa mottagarsträng (för bcc)
loop

do until rs2.eof
  skapa brevet
loop

slå ihop allt, skicka

stäng rs, rs2, epost

Givetvis kan du hämta ett rs för mottagare och innehåll, om du vill piffa till brevet med

Hej Kalle!

dvs stoppa in rs-värde i brevet. (Namnet från första rs egentligen).

Medlem sedan apr. 20032 072 inlägg
#12

OK, så man lägger databaskopplingen där man brukar och sedan sätter man bara in

& RS("namn")

i meddelandet...Då tror ja nästan att jag förstår :)
Tack för hjälpen J.N.

Medlem sedan apr. 20032 072 inlägg
#13

Då borde denna kodsnutten stämma...

<%
If Request.Querystring("id") <> "" Then

Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")

MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/databas/members.mdb")
SQL = "SELECT * From temp Where tempid=" & Request.Querystring("id")
rs.Open SQL, MinCon
%>

<%
    Dim MyBody
    Dim MyCDONTSMail
%>

<%
    Set MyCDONTSMail = CreateObject("CDONTS.NewMail")
    MyCDONTSMail.From= "coccozz@hotmail.com"
    MyCDONTSMail.To= "& RS("mejl")"
    MyCDONTSMail.Subject="Aktiveringsuppgifter för MemberZone på coffaz.com"
    MyBody = "Aktiveringsuppgifter för MemberZone på coffaz.com" & vbCrLf & vbCrLf
    MyBody = MyBody & "Hej "& RS("fornamn") & vbCrLf
    MyBody = MyBody & "Vi uppskattar att du har tagit dig tid att registrera dig på MemberZone," & vbCrLf
    MyBody = MyBody & "och skickar därför över dina aktiveringsuppgifter" & vbCrLf
    MyBody = MyBody & "Din personliga aktiveringskod är: "& RS("tempid") & vbCrLf & vbCrLf
    MyBody = MyBody & "Dina användaruppgifter:"& vbCrLf
    MyBody = MyBody & "-----------------------"& vbCrLf
    MyBody = MyBody & "Det användarnamn du önskade var: "& RS("anvn") & vbCrLf
    MyBody = MyBody & "Det lösenord du önskade var: "& RS("losen") & vbCrLf
    MyBody = MyBody & "-----------------------"& vbCrLf
    MyBody = MyBody & "Återigen tack för att du tog dig tid att registrera dig."& vbCrLf
    MyBody = MyBody & "#######################"& vbCrLf
    MyBody = MyBody & "#.....................#"& vbCrLf
    MyBody = MyBody & "#....// coffaz.com....#"& vbCrLf
    MyBody = MyBody & "#.....................#"& vbCrLf
    MyBody = MyBody & "#######################"& vbCrLf
    MyCDONTSMail.Body= MyBody
    MyCDONTSMail.Send
    set MyCDONTSMail=nothing
%>

Elr?
Bar funderade. Nu måste han ju hitta rätt post och som ni ser har jag satt en sån här lösning på det...

SQL = "SELECT TOP 1 * From temp Where tempid=" & Request.Querystring("id")

Vet inte om det stämmer att man kan göra så men gjorde iaf. response redirect. från sidan som sätter in det i databasen så här.

  Response.Redirect ("regga2.asp?ID=<%=rs("id")%>")

Dock säger min magkänsla.[Inutition elr va d heter]
mig att detta inte är rätt...aja, är det nån som vet hur det ska vara är ni som vanligt välkommna ;)
//Coccozz

Medlem sedan apr. 20032 072 inlägg
#14

INGEN???

Medlem sedan mars 20015 287 inlägg
#15

Ser bra ut tycker jag nog.

Denna rad är jag dock lite tveksam till:

MyCDONTSMail.To= "& RS("mejl")"

Bättre med detta skulle jag tro:
MyCDONTSMail.To= RS("mejl")

Medlem sedan apr. 20032 072 inlägg
#16

OK...Sjysst Solbulle...
--
Då ska vi bara vänta på att kotten ska komma tillbaka...Nu har jag ju lagt upp kolumnnamnen...Men det är ju nte jättebrått...inte än iaf... ;)

Medlem sedan sep. 20011 722 inlägg
#17

Högst otestat men:

'## Söker i databasen
SQLopen = "SELECT fornamn, efternamn, mejl, stad, sex, anvn, losen "&_
  "FROM GammalTabell WHERE id = " & Request.Form("ID") & " AND tempid = " & Request.Form("tempid") & ""
RecSet.Open SQLopen, Connect, 2, 2 

If RecSet.EOF
  '## Om lösenordet var fel
  RecSet.Close
  Set RecSet = Nothing
  [Lösenordet var fel]
Else
  '## Om lösenordet var rätt sparas databas informationen i variablar
  Dim fornamn, efternamn, mejl, stad, sex, anvn, losen
    fornamn = RecSet("fornamn")
    efternamn = RecSet("efternamn")
    mejl = RecSet("mejl")
    stad = RecSet("stad")
    sex = RecSet("sex")
    anv = RecSet("anv")
    losen  = RecSet("losen")
  RecSet.Close
  Set RecSet = Nothing
  
  '## Sparar en ny post
  SQLadd = INSERT INTO NyTabell (fornamn, efternamn, mejl, stad, sex, anvn, losen) "&_
    "VALUES (" & fornamn & ", " & efternamn & ", " & mejl & ", " & stad & ", " & sex & ", " & anvn & ", " & losen & ")
  Connect.Execute SQLadd,,128

  '## Tar bort den gammla posten
  SQLdel = "DELETE FROM GammalTabell WHERE id = " & Request.Form("ID") & ""
  Connect.Execute SQLdel,,128

  [Lösenordet var rätt, posten är ny flyttad]
End If

Sen får du ändra NyTabell och GammalTabell till de rätta tabellnamnen.

Medlem sedan apr. 20032 072 inlägg
#18

Bara en sak jag funderar på kotten. Måste jag dela ut det vanliga id till de också. Eftersom den frågar efter det också.
Det är inget problem alltså, men vill bara vara säker innan jag gör något dumt ;)

Medlem sedan sep. 20011 722 inlägg
#19

Du menar när man söker i databasen högst upp?
Jo det kan vara bra, annars söker databasen endast efter en post med rätt lösenord. Tänk om det nu finns två eller fler poster med samma lösenord. I så fal används den post som hittas först i databasen och det är ju inte säkert att den är den rätta.

Genom att söka efter ID så kollar man ju på en specifik post (Förutsatt att det inte finns dubbletter här också) och ovanstående problem kan inte inträffa.

Medlem sedan apr. 20032 072 inlägg
#20

D va smart kotten. Tänkte inte så långt :(
Men hade tur att du gjorde det åt mig :)
Ha d // Å tack så mykke

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)