webForumDet fria alternativet

Registrering!

ASP

4 svar · 240 visningar · startad av trexter.com

Medlem sedan apr. 20021 203 inlägg
Frågan#1

... vill att några sidor ska kräva medlemsregistrering! Jag vet själv hur jag ska lagra användarna och deras lösenord i databasen men sedan börjar problemen:

1. Hur ska jag göra så att inte flera användare kan ha samma användarnamn?

2. Jag hade tänkt lagra id & pass i en databas men också lägga det i en cookie. Hur "prånglar" jag in det där och hur gör jag för att sedan jämföra (för det är väl det jag måste) om det i Cookien stämmer överens med det i databasen eller inte?

Kanske är jag rent ute och cyklar men säg det då!

Medlem sedan maj 20002 597 inlägg
#2

1. gör en jämförelse med databasen.. om namnet redan finns så ska det bli ett felmeddelande.

If Not Isnull(Request.Form("Username")) Then strUsername = Cstr(Request.Form("Username"))
SQL = "SELECT f_User FROM t_Members where f_User = '" & strUsername & "'"

set rs = Connect.Execute(SQL)
If Not rs.EOF Then
	While Not rs.EOF
		If LCase(RS("f_User")) =  LCase(strUsername) Then
		response.write "Användarnamnet är upptaget"
		End If

		rs.movenext
	Wend

Else

'här utförs inmatningen i databasen
End If

2. Varför inte sätta ett värde till tex YES .. sen kontrollera om det stämmer på dom sidorna där bara inloggade ska ha tillgång..

Response.Cookies("Login")("User") = "Yes"

och när du kollar om värdet stämmer skriver du överst på sidan

If Request.Cookies("Login")("User") = "Yes" Then

MVH Sico

Medlem sedan dec. 200012 464 inlägg
#3
  1. Det finns lite olika sätt.

Du kan definiera i databasen att kolumnen för användarnamn bara får innehålla unika värden. Det behövs lite felhantering för att fånga upp att det inträffar. (Felhantering behövs i alla fall så det är ingen nackdel egentligen.)

Du kan också lägga till en kontroll innan lagringen om det valda namnet finns

query = "select 1 from users where username = '" & request.form("username")
set rs = connect.execute(query)
if not rs.eof then
  response.write "Namnet är upptaget, vänligen välj ett annat <br>"
  response.end
end if

Att lägga in password i en cookie är inte bra och fyller ingen direkt function.

För att sätta ett värde i en cookie

response.cookies("username") = request.form("username")

för att använda ett värde

query = "select 1 from t where username = '" & request.cookies("username") & "'"

t,ex.

Hmm, något sen alltså

Medlem sedan apr. 20021 203 inlägg
#4

Sico:

Några frågor ang. din kod:
Vad gör IsNull på första rade egentligen?
vad gör "Wend"?

Sedan förstår jag inte riktigt svaret på 2:an. Hur ska jag sätta det till Yes! Jag förstår hur jag gör det just på den sidan där man registrerar sig men måste man då sedan hålla på och skicka det med en QueryString hel tiden eller?

Medlem sedan maj 20002 597 inlägg
#5

Isnull .. ren engelska ... If Not Isnull = om fältet inte är tomt...
Man avslutar While med Wend...

Du kollar ju om användaren är inloggad på detta sättet...

If Request.Cookies("Login")("User") = "Yes" Then
'koden som dom inloggade ska se
Else
response.write "Du har inte behörighet till denna sidan"
End If

Du behöver inte skicka å ha dig med QueryString hela tiden om jag fattat din fråga rätt...

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)