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 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 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.
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 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
:)
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 Ä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 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! :)
Okl, tack så mkt för all hjälp, ska tiotta p dessa ikväll ; ))
//Micke A