Fråga 1:
If Request.Form("DinKnapp") = True Then
Response.Redirect ("true.asp")
Else
Response.Redirect ("false.asp")
End If
23 svar · 518 visningar · startad av Coccozz
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 ;)
Fråga 1:
If Request.Form("DinKnapp") = True Then
Response.Redirect ("true.asp")
Else
Response.Redirect ("false.asp")
End If
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.
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? :)
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... ;)
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
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
Coccozz du kan inte skriva ut vilka de övriga kolumnerna heter?
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.)
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
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).
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.
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
INGEN???
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")
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... ;)
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.
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 ;)
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.
D va smart kotten. Tänkte inte så långt :(
Men hade tur att du gjorde det åt mig :)
Ha d // Å tack så mykke