webForumDet fria alternativet

Skicka glömda uppgifter, funkar detta?

ASP

20 svar · 442 visningar · startad av bigsky

Medlem sedan maj 2002821 inlägg
Frågan#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" %\>
Medlem sedan okt. 20005 273 inlägg
#2

Testa .... ;)

Medlem sedan okt. 20005 273 inlägg
#3
[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 .........

Medlem sedan maj 2002821 inlägg
#4

Nej, man kommer bara till helpdesk.asp hela tiden, oavsett om e-postadressen finns i DBn eller inte.

Medlem sedan okt. 20005 273 inlägg
#5

Skriv ut SQL-satsen med Response.Write...

[red]
Response.Write strSQL
[/red]
Medlem sedan maj 2002821 inlägg
#6

Vart?

Medlem sedan okt. 20005 273 inlägg
#7
[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 .........

Medlem sedan maj 2002821 inlägg
#8

Ja, den skrivs ju ut då, men nåt annat händer ju inte. Vad konstigt? Varför funkar det inte, bah.

Medlem sedan mars 20015 287 inlägg
#9

Hur blev då utskriften?

Medlem sedan maj 2002821 inlägg
#10

SELECT Username, Password, Email FROM users WHERE Email = ''

Medlem sedan mars 20015 287 inlägg
#11

mao får du inte med någon info från formuläret.

Medlem sedan maj 2002821 inlägg
#12

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.

Medlem sedan mars 20015 287 inlägg
#13

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?

Medlem sedan dec. 200012 464 inlägg
#14

Vilken method använder du i det formuläret där Email finns?

POST eller GET? Det skall vara POST i ditt fall.

Medlem sedan maj 2002821 inlägg
#15

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?

Medlem sedan apr. 20012 427 inlägg
#16

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")) & "'"
Medlem sedan maj 2002821 inlägg
#17

Skrivs ut som SELECT Username, Password, Email FROM users WHERE Email = test@email.com

Medlem sedan apr. 20012 427 inlägg
#18

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!

Medlem sedan maj 2002821 inlägg
#19

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?

Medlem sedan okt. 20005 273 inlägg
#20

Är det en fungerande epost adress......?

Det måste vara det för att CDONTS ska fungera

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)