Avatar billede pfp Nybegynder
07. december 2001 - 12:15 Der er 14 kommentarer og
1 løsning

Glemt password...

hej

er der ikke en der kan hjælpe mig med følgende. Jeg har en database som indeholder en masse kundeoplysninger. Jeg vil så gerne lave sådan, at hvis en kunde har glemt sit password så kan han indtaste sin e-mail adresse i et felt og så bliver hans password automatisk sendt til den adresse der blev tastet.

Jeg bruger JMail 4.0 og har sådan set koden til at sende emailen, men jeg mangler den kode der tjekker om mailen findes i databasen.

Jeg havde forestillet mig noget lign. det nedenstående, men ved ikke helt hvordan jeg smække koden sammen.

<%
\' Her skal selvf. først oprettes forbindelse til db
If Request.Form(\"Email\") exist in tabel then
SQL = \"Select * FROM Kunder where Email\" = Request.Form(\"Email\")
%>

og så skal mailen så sendes til adressen.

Håber i forstår spm.

/pfp
Avatar billede webbe Nybegynder
07. december 2001 - 12:34 #1
Du skal lave det som følger:

sql = \"SELECT * FROM Kunder WHERE Email=\"&request.form(\"email\")
Set rs = Connect.Execute(sql)

If (rs.bof OR rs.eof) Then
  response.redirect(\"fejl.asp\")
End if

Herefter indsætter du blot det script der sender e-mailen til brugeren med password.
Avatar billede pfp Nybegynder
07. december 2001 - 13:14 #2
Hvis jeg bruger nedenstående stump kode får jeg en 500 fejl?

<%
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"Databaser/database.mdb\")

SQL = \"SELECT * FROM Kunder WHERE Email=\"&request.form(\"Email\")
rs.Open SQL, DSN, 1

If (rs.bof OR rs.eof) Then
  response.redirect(\"fejl.asp\")

Else
Response.Write Beskeden blev sendt til &Request.Form(\"Email\")
End if
%>

/pfp
Avatar billede webbe Nybegynder
07. december 2001 - 13:16 #3
Du skal ikke bruge en else-clause når du har en redirect i din if-clause!!!

Du skal lave det så din if-sætning står alene, som jeg har skrevet den!

Hvis du bruger den kode du har skrevet vil den redirecte uanset hvad.

Her er det rigtige:

<%
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"Databaser/database.mdb\")

SQL = \"SELECT * FROM Kunder WHERE Email=\"&request.form(\"Email\")
rs.Open SQL, DSN, 1

If (rs.bof OR rs.eof) Then
  response.redirect(\"fejl.asp\")
End if

Response.Write Beskeden blev sendt til &Request.Form(\"Email\")
%>

Avatar billede pfp Nybegynder
07. december 2001 - 13:33 #4
Ok...det vidste jeg ikke. Men selvom jeg bruger din nye kodestump får jeg alligevel en HTTP: 500 Internal Server Error.
Avatar billede webbe Nybegynder
07. december 2001 - 13:34 #5
Har du slået \"Vis uskadelige http-fejl\" fra under avancerede settings???
Avatar billede pfp Nybegynder
07. december 2001 - 13:39 #6
nej, nu kører jeg godt nok engelsk explorer, men \"Show Friendly HTTP-errors\" er ikke slået fra?
Avatar billede webbe Nybegynder
07. december 2001 - 13:40 #7
Så slå den fra - og vær sikker på du har oprettet en fil der hedder fejl.asp og at der er noget indhold i den!
Avatar billede pfp Nybegynder
07. december 2001 - 13:55 #8
ODBC driver does not support the requested properties.

/Send.asp, line 10

Det er altså noget af flg. der er problemer med:
SQL = \"SELECT * FROM Kunder WHERE Email=\"&request.form(\"Email\")
rs.Open SQL, DSN, 1
Avatar billede clausn Nybegynder
07. december 2001 - 18:10 #9
Hej
Er request.form(\"email\") tom? eller vil det virke...
Avatar billede clausn Nybegynder
07. december 2001 - 18:12 #10
Du kan lave det på denne måde:

<%
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"Databaser/database.mdb\")

SQL = \"SELECT * FROM Kunder WHERE Email=\"&request(\"Email\")
rs.Open SQL, DSN, 1

If (rs.bof OR rs.eof) Then
  response.redirect(\"fejl.asp\")
End if

Response.Write Beskeden blev sendt til &Request(\"Email\")
%>

i din browser vil så kunne skrive http://localhost/min_asp_fil.asp?email=minemail@adresse.dk
Avatar billede snuseren.dk Nybegynder
07. december 2001 - 19:23 #11
Prøv lige:

Response.Write (\"Beskeden blev sendt til &Request(\'Email\')\")
Avatar billede pfp Nybegynder
07. december 2001 - 19:32 #12
riwen-> selvom jeg bruger dit script får jeg stadig fejl omkring min SQL. Jeg får fejlen:
ODBC driver does not support the requested properties.

Og nej min Request.Form(\"Email\") er ikke tom, den indeholder den email adresse jeg har skrevet. For hvis jeg fx prøver at køre denne lille test:

<%
Dim varMail
varMail = Request.Form(\"Email\")
%>
Du skrev <%=varMail%>

Så får jeg ganske rigtigt den indtastede mail adresse ud. Så den burde ikke være tom.

/pfp
Avatar billede webbe Nybegynder
10. december 2001 - 10:37 #13
Har selv lavet samme stunt nu, og det virker perfekt.

Jeg kan poste min kode her, eller sende den pr. e-mail!
Avatar billede pfp Nybegynder
10. december 2001 - 12:32 #14
ok, du må egentlig meget gerne prøve at sende det til peter.poulsen@htxvejle.dk

/pfp
Avatar billede webbe Nybegynder
10. december 2001 - 12:46 #15
Har sendt en mail med en fil til dig!
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