Upptäckte en "brist" i min kodning inatt när jag satt och testkörde webbplatsen efter buggar.
Jag har gett användarna möjlighet att uppdatera sina uppgifter, som för- och efternamn samt e-postadess. Och det är just möjligheten att ändra e-postadressen mot en ny som det blir knas med!
Scenario:
Användaren1 anger en ny e-postadress, mail@mail.com MEN Användaren2 har redan angett den e-postadressen för sitt konto! Det som händer är att jag nu får två stycken användare med samma e-postadress och detta kan man sedan missbruka t.ex. genom att "glömt lösenord"-funktion få ett nytt lösenord genererat till sig och då sätts samma lösenord till både Användare1 och Användare2.
(jag ska ändra "glömt lösenord"-funktionen så att man också måste ange användarnamnet också.)
Jag vill ju låta dom byta e-postadress, men inte mot ett som en annan medlem redan har angett. Jag använder följande när användaren uppdaterar sina kontouppgifter.
'# Öppna databasanslutning till MySQL-servern.
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=; DATABASE=; USER=; PASSWORD=; OPTION=3;"
'# Uppdatera kontouppgifterna för användaren.
strSQL = "UPDATE tbluppgifter SET strfname = '" & fname & "', strlname = '" & lname & "', strepost = '" & epost & "' WHERE strid = " & session("id")
Con.Execute strSQL, , 128
Con.Close
Set Con = Nothing
Session("Service") = "<div align=""center""><p><i>Dina kontouppgifter har uppdaterats!</i><p></div>"
Response.Redirect "/x/konto.asp"
Du vill alltså att e-postadressen ska vara unik? Enklaste sättet är att tala om det för databasen så håller den reda på det och ger ett felmeddelande om någon försöker byta till en e-postadress som redan finns...
ALTER TABLE tbluppgifter ADD UNIQUE (epost);
261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25