webForumDet fria alternativet

Förhindra uppdatering av kontouppgifter om e-postadressen redan finns?

Databaser & SQL

1 svar · 332 visningar · startad av medialabs

Medlem sedan mars 20023 686 inlägg
Frågan#1

Hej,

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"
Medlem sedan juni 20034 013 inlägg
#2

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);

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)