bigsky Medlem sedan maj 2002 821 inlägg Frågan 11 maj 2002 00:25 #1 Kommer denna kod att fungera? Tanken är att den ska skicka iväg uppgifterna som finns i databasen om den e-post man matar i på sidan innan stämmer med den som redan finns i databasen. Dock ska databasen uppdateras med ett nytt lösenord innan uppgifterna skickas med. Det nya lösenordet ska alltså vara det som man ser i det e-postmeddelande man får. Gulp, behöver hjälp nu...
<%@ LANGUAGE="VBSCRIPT" %>
<!-- #include file="../adovbs.inc" -->
<!-- #include file="../sendlostuserinfoconn.asp" -->
<% Set RecSet = Server.CreateObject("ADODB.Recordset")
FindEmail = "SELECT Username, Password, Email FROM users"
RecSet.Open FindEmail, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
If RecSet("Email") = Request.Form("email") Then
memberemail = RecSet("Email")
memberusername = RecSet("Username")
memberpassword = RecSet("Password")
Passwordeller = ""
Randomize
For i = 1 to 10
intNum = Int(10 \* Rnd + 48)
intBig = Int(26 \* Rnd + 65)
intSmall = Int(26 \* Rnd + 97)
intRand = Int(3 \* Rnd + 1)
Select Case intRand
Case 1
delPasseller = Chr(intNum)
Case 2
delPasseller = Chr(intBig)
Case 3
delPasseller = Chr(intSmall)
End Select
Passwordeller = Passwordeller & delPasseller
Next
RecSet("Email") = Passwordeller
RecSet.Update
Dim objMail
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.From = "something@email.com"
objMail.Subject = "Your username and new password"
objMail.To = " " & memberemail & " "
objMail.Bcc = "soemthingelse@email.com"
objMail.Body = "Your member ID: = " & memberusername & " " & vbcrlf&\_
"Your password: = " & memberpassword & " " & vbcrlf & vbcrlf&\_
"MVH Supporten" & vbcrlf&\_
MailObj.BodyFormat = 1
MailObj.MailFormat=1
objMail.Send
Set objMail = Nothing
Else
Response.Redirect "helpdesk.asp"
End If
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
Response.Redirect "../default.asp" %\>
I icaaq Medlem sedan okt. 2000 5 273 inlägg [red]
<%
'div anslutningar till databasen....
strSQL = "SELECT Username, [Password], Email FROM users WHERE Email = "&Trim(Request.Form("email"))
Set objRS = Connect.execute(strSQL)
If objRS.EOF Then
Response.Redirect "helpdesk.asp"
Else
Randomize
For i = 1 to 10
intNum = Int(10 * Rnd + 48)
intBig = Int(26 * Rnd + 65)
intSmall = Int(26 * Rnd + 97)
intRand = Int(3 * Rnd + 1)
Select Case intRand
Case 1
delPasseller = Chr(intNum)
Case 2
delPasseller = Chr(intBig)
Case 3
delPasseller = Chr(intSmall)
End Select
Passwordeller = Passwordeller & delPasseller
Next
strUpd = "UPDATE users SET [Password] = "&Passwordeller&" WHERE Email = "&Trim(Request.Form("email"))
Connect.execute(strUpd),,128
Dim objMail
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.From = "something@email.com"
objMail.Subject = "Your username and new password"
objMail.To = " " & memberemail & " "
objMail.Bcc = "soemthingelse@email.com"
objMail.Body = "Your member ID: = " & memberusername & " " & vbcrlf&_
"Your password: = " & memberpassword & " " & vbcrlf & vbcrlf&_
"MVH Supporten" & vbcrlf&_
MailObj.BodyFormat = 1
MailObj.MailFormat=1
objMail.Send
Set objMail = Nothing
Connect.Close
Set Connect = Nothing
Response.Redirect "../default.asp"
End If
%>
[/red]
Så här kanske .........
bigsky Medlem sedan maj 2002 821 inlägg Nej, man kommer bara till helpdesk.asp hela tiden, oavsett om e-postadressen finns i DBn eller inte.
I icaaq Medlem sedan okt. 2000 5 273 inlägg Skriv ut SQL-satsen med Response.Write...
[red]
Response.Write strSQL
[/red]
I icaaq Medlem sedan okt. 2000 5 273 inlägg [red]
<%
'div anslutningar till databasen....
strSQL = "SELECT Username, [Password], Email FROM users WHERE Email = "&Trim(Request.Form("email"))
[b]Response.Write strSQL
Response.End[/b]
Set objRS = Connect.execute(strSQL)
If objRS.EOF Then
Response.Redirect "helpdesk.asp"
Else
Randomize
For i = 1 to 10
intNum = Int(10 * Rnd + 48)
intBig = Int(26 * Rnd + 65)
intSmall = Int(26 * Rnd + 97)
intRand = Int(3 * Rnd + 1)
Select Case intRand
Case 1
delPasseller = Chr(intNum)
Case 2
delPasseller = Chr(intBig)
Case 3
delPasseller = Chr(intSmall)
End Select
Passwordeller = Passwordeller & delPasseller
Next
strUpd = "UPDATE users SET [Password] = "&Passwordeller&" WHERE Email = "&Trim(Request.Form("email"))
Connect.execute(strUpd),,128
Dim objMail
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.From = "something@email.com"
objMail.Subject = "Your username and new password"
objMail.To = " " & memberemail & " "
objMail.Bcc = "soemthingelse@email.com"
objMail.Body = "Your member ID: = " & memberusername & " " & vbcrlf&_
"Your password: = " & memberpassword & " " & vbcrlf & vbcrlf&_
"MVH Supporten" & vbcrlf&_
MailObj.BodyFormat = 1
MailObj.MailFormat=1
objMail.Send
Set objMail = Nothing
Connect.Close
Set Connect = Nothing
Response.Redirect "../default.asp"
End If
%>
[/red]
Så här kanske .........
bigsky Medlem sedan maj 2002 821 inlägg Ja, den skrivs ju ut då, men nåt annat händer ju inte. Vad konstigt? Varför funkar det inte, bah.
bigsky Medlem sedan maj 2002 821 inlägg SELECT Username, Password, Email FROM users WHERE Email = ''
S solbulle Medlem sedan mars 2001 5 287 inlägg mao får du inte med någon info från formuläret.
bigsky Medlem sedan maj 2002 821 inlägg Nej, om jag inte använder response som i den första koden han skickade (iccaq) så kommer man bara till helpdesk.asp, men nåt mail skickas inte.
S solbulle Medlem sedan mars 2001 5 287 inlägg Men... om du när du skriver ut din sqlsats och den blir som du skriver måste ju Request.Form("email") vara tom.
Har du ett värde där i och rätt namn i formuläret?
L LarsG Medlem sedan dec. 2000 12 464 inlägg Vilken method använder du i det formuläret där Email finns?
POST eller GET? Det skall vara POST i ditt fall.
bigsky Medlem sedan maj 2002 821 inlägg det finns ett värde i formuläret, textfältet heter email och jag använder POST. Vad är meningen med att skriva ut sql satsen just där?
Skarre Medlem sedan apr. 2001 2 427 inlägg Då ser du om Request.Form("email") innehåller någonting eller inte. Om det inte gör det så måste någonting vara fel.
Testa att ändra denna rad:
strSQL = "SELECT Username, [Password], Email FROM users WHERE Email = "&Trim(Request.Form("email"))
till
strSQL = "SELECT Username, [Password], Email FROM users WHERE Email = '" & Trim(Request.Form("email")) & "'"
bigsky Medlem sedan maj 2002 821 inlägg Skrivs ut som SELECT Username, Password, Email FROM users WHERE Email = test@email.com
Skarre Medlem sedan apr. 2001 2 427 inlägg Märkligt. Det bör skrivas ut som:
SELECT Username, Password, Email FROM users WHERE Email = 'test@email.com'
Jag har hursomhelst inte läst igenom koden, och har inte riktigt tid just nu, men det brukar inte dröja länge innan någon löser sådant här. Lycka till!
bigsky Medlem sedan maj 2002 821 inlägg Jo, nu skrivs det så. Men nåt mail skickas inte. Finns e-posten inte skickas man till helpdesk.asp, finns den skickas man till default.asp. Så det funkar, hur som helst är det rätt att skriva & vbcrlf & _ om man vill ha en ny rad i Body delen av mailet?
I icaaq Medlem sedan okt. 2000 5 273 inlägg Är det en fungerande epost adress......?
Det måste vara det för att CDONTS ska fungera