webForumDet fria alternativet

Strul med Registera...

8 svar · 209 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Hej

HAr min lilla loginsajt där man kan bli medlem.

Har ju gjort så att anv. man valt vid registreriungen kollas så den inte redan finns.

Allting funkar fint, men...

Nu har jag gjort en "Password Reminder", där man kan få sitt anv. & läsenord skickat till sin email.

Kruxet är att om TVÅ personer reggat sig med SAMMA emailadress, blir det fel.

Då kollar den tabellen med:

SELECT Anv_Namn FROM tabell_data WHERE Anv_Namn = '" & anv_namn & "';"

Men det blir fel, eftersom om två personer då reggat sig med samma mail så tar den loginuppg. från första bästa träff och skickar iväg till denna email.

Så nu vill jag i registeringsfilen utveckla min SQLfråga som kollar redan existerande anv namn och emailadresser.

Så här hade jag tänkt mig:

strSQL= "SELECT Anv_Namn, Email FROM tabell_data WHERE Anv_Namn = '" & anv_namn & "' AND Email = '" & email & "';"

Men det blir ju fel, för då såger den stopp om BÅDA är sanna, alltså om samma anv och SAMMA email redan finns.

Tar man OR istället för AND blir det väl också fel, eller?!"

Lite hjälp p åtraven skulle sitta väldigt fint denna trötta tisdagskväll ; ))

SebbeMedlem sedan jan. 20032 285 inlägg
#2

Den övre borde väl funka, eftersom det finns väl bara en person med samma användarnamn, eller?

strSQL = "SELECT Anv_Namn, Email FROM tabell_data WHERE Anv_Namn = '" & Session("anv") & "'"
Set objRS = objCon.Execute(strSQL)

If NOT objRS.EOF Then
'Skicka mailet
Else
  Response.Write("Användarnamnet finns inte!")
End If
solbulleMedlem sedan mars 20015 287 inlägg
#3

Angående registreringen så visst borde du kunna byta ut mot OR där...
Men hur som helst kan du väl gör a som Sebbe skriver, användarnamnet måste ju var unikt! Du ska ju på den fårgan bara få ut en träff!?!
Annars skulle du iofs kunna sätta både användarnamn samt epostadress som villkor i din fråga.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#4

Hmm, antingen har du missuppfattat mig eller så har jag missuppfattat dig...

Det här med att skicka ailet är inga som helst problem, det som händer är att TVÅ Personer kan regga OLIKA användarnamn FAST MED SAMMA ÈMAIL.

Så i raggfilen måset jag kolla:

- OM Anv_namnet redan finns.
-OM emailadressen redan finns.

Visserligen kan man nog köra en OR, men det blir fel, för då säger den ju att användarnamnet är upptaget.

Som det är nu, så kan man alltså REGGA två OLIKA användernamn, MEN MED SAMMA EMAIL, KOLLA IN:

http://www.MickeA.com/Medlem

SebbeMedlem sedan jan. 20032 285 inlägg
#5
strSQL = "SELECT * FROM tabell WHERE Anv_Namn = '" & Request.Form("namn") & "' OR WHERE Email = '" & Request.Form("mail") & "'"
Set objRS = objCon.Execute(strSQL)

If objRS.EOF Then
' Regga namnet
Else
  Response.Write("Användarnamnet eller emailen fanns redan!")
End If

:)

MickeA.comMedlem sedan feb. 20034 441 inlägg
#6

Ok, men säg att man har valt ett unikt anv.namn MEN en emailadress som redan finns.

Då är det lämpligare med messet "Emailadressen finns redan, välj en annan", resp. "Anv är upptaget, välj ett annat".

Ja ni kanske förstår.

går det att lösa på ngt smart och inte på ett så tokavancerat sätt, orkar inte röra runt i koden mer än vad jag måste, tack

solbulleMedlem sedan mars 20015 287 inlägg
#7

Är det så viktigt egentligen? Tänk om Sune och hans brorsa vill registrera sig och bara har en epostadress i familjen då? ;)
Detta kanske kan fungera..
Finns säkert bättre lösningar :)

strSQL = "SELECT * FROM tabell WHERE Anv_Namn = '" & Request.Form("namn") & "' OR WHERE Email = '" & Request.Form("mail") & "'"
Set objRS = objCon.Execute(strSQL)

If objRS.EOF Then
' Regga namnet
Else
	If objRS("email") = Request.Form("mail") then 
  		Response.Write("Emailen fanns redan!")
	End if
	If objRS("Anv_Namn") = Request.Form("namn") then 
  		Response.Write("Namnet fanns redan!")
	End if
  Response.Write("Du måste försöka igen!")
End If
SebbeMedlem sedan jan. 20032 285 inlägg
#8
strUser = Request.Form("namn")
strMail = Request.Form("mail")

strSQL = "SELECT IIF(Anv_Namn = strUser,True,False) AS omnamn, IIF(Email = strMail,True,False) AS ommail FROM tabell_data"
Set objRS = objCon.Execute(strSQL)

If objRS("omnamn") = True Then
  strFel = "Användarnamnet" 
ElseIf objRS("ommail") = True Then
  strFel = "Mailen"
ElseIf objRS("omnamn") = True AND objRS("ommail") = True Then
  strFel = "Användarnamnet och mailen"
End If

If Len(strFel) <> 0 Then
  Response.Write(strFel & " är fel!")
Else
' Redigera användaren
End If

Väldigt osäker på om det här fungerar, men man kan ju försöka! :)

MickeA.comMedlem sedan feb. 20034 441 inlägg
#9

Okl, tack så mkt för all hjälp, ska tiotta p dessa ikväll ; ))

//Micke A

124 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)