26. december 2003 - 13:52Der er
11 kommentarer og 1 løsning
At slette sin bruger i DB'en
Jeg sidder og forsøger at hitte ud af noget ASP, og nu mangler jeg kun en sidste funktion før webstedet er færdigt... Mine brugere kan oprette sig, og man kan derefter søge på dem og læse deres profiler, osv., men nu mangler jeg bare en funktion: Når en bruger indtaster sit brugernavn og password i 2 bestemte felter og klikker "Slet", skal hele den brugers oprettelse (altså oprettede række i databasen) slettes, HVIS brugernavnet og password'et altså eksisterede og passede sammen.
Hvis du vil sikre at det indtastede findes så kan man lave en select først og så slette profilen. Du skal havde en connection conn til din database og talel og kolonnenavne skal måske lige rettes til, så de passer mit din database:
brugernavn = replace(Request.Form("brugernavn"),"'","''") password = replace(Request.Form("password"),"'","''") sql = "select * from brugere where brugernavn = '" & brugernavn & "' AND password = '" & password & "'" Set rs = Conn.Execute(SQL) if not rs.EOF then Response.Write "Bruger slettet" sql = "delete from brugere where brugernavn = '" & brugernavn & "' AND password = '" & password & "'" conn.Execute(SQL) else Response.Write "Bruger findes ikke" end if
Hvis brugernavnet og passwordet er kendte vil følgende sql-ordre slette brugerens data. SQL="Delete * from Test where brugernavn='" & brugernavn &"'" & " and password='" & password &"'"
Der er i princippet ingen grund til at tjekke først for hvis man skriver noget forkert i brugernavn og password får man ikke en fejl nå man bare kun laver en delete sql: brugernavn = replace(Request.Form("brugernavn"),"'","''") password = replace(Request.Form("password"),"'","''") sql = "delete from brugere where brugernavn = '" & brugernavn & "' AND password = '" & password & "'"
Problemet er bare at man så vil udskrive "Brugeren slettet" men hvis nu brugeren har skrevet enten sit brugernavn eller password forkert vil brugeren tror han var slettet, men det er han ikke. Så det et valg man kan gøre...
Ja dog skal du hvade linjen med rs.Update slettet, og end if skal helt op lige efter Response.Write linjen:
Så if sætningen og de sidste linjer bliver:
if not rs.EOF then Response.Write "<b>Annoncen er nu slettet!</b>" sql = "delete from annonce where brugernavn = '" & brugernavn & "' AND password = '" & password & "'" conn.Execute(SQL) else Response.Write "Brugernavnet eller password'et er forkert... Prøv igen!" end if
Det er også altid godt at lukke sin connection lige som du lukker dit recordset sidst i koden:
'lukker pænt igen rs.Close set rs = Nothing
Så det bliver:
'lukker pænt igen rs.Close set rs = Nothing Conn.Close Set Conn = Nothing
Synes godt om
Ny brugerNybegynder
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.