webForumDet fria alternativet

"Användaren finns redan"

5 svar · 290 visningar · startad av hallmert

hallmertMedlem sedan dec. 2004182 inlägg
#1

Hej, följande kod skriver ut att användaren redan finns, VARFÖR? Jag förstår inte, för användaren finns verkligen inte, heh. Det är mycket märkligt. Kan någon hjälpa mig?

<!-- #include file="adovbs.inc" -->

<%
If Request.Form("pw1") <> Request.Form("pw2") Then

	Session("meddelande") = "<p>Båda lösenorden måste vara samma!! Försök igen."
	Response.Redirect "bli_medlem.asp?user="

End If
	

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/fanclub.mdb")&";pwd=losen"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select username From members"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF

	IF connect.execute("select * from members where ucase(username)='" & ucase(request.form("username")) & "'").eof then 

		Session("meddelande") = "<p>Det användarnamnet var redan taget! Försök med något annat"
		RecSet.Close
		Response.Redirect "bli_medlem.asp?user="

	End IF

RecSet.MoveNext

Loop

RecSet.Close

%><%

Addera = "Select * From members"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

	RecSet.AddNew

	RecSet("fnamn") = Request.Form("fnamn")
	RecSet("enamn") = Request.Form("enamn")
	RecSet("username") = Request.Form("username")
	RecSet("losen") = Request.Form("pw1")
	RecSet("epost") = Request.Form("epost")
	RecSet("msn") = Request.Form("msn")
	RecSet("stad") = Request.Form("stad")
	RecSet("bild") = ""
	RecSet("datum") = Now()
	RecSet("status") = "Fffline"

	RecSet.Update
	RecSet.Close
	Connect.Close
	Set RecSet = nothing
	Set Connect = nothing

Session("meddelande") = "Du har nu blivit inlagd i registret! Testa att logga in."
Response.Redirect "bli_medlem.asp?user=reggad"

%>
JosefMedlem sedan mars 20023 561 inlägg
#2

Gör så här när du kolla istället:

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/fanclub.mdb") & ";pwd=losen"

Set rs = Connect.Execute("SELECT count(*) FROM members WHERE ucase(username) = '" & ucase(Request.Form("username")) & "'")

If rs.fields(0) > 0 Then
	Session("meddelande") = "<p>Det här användarnamnet är redan taget! Försök med något annat</p>"
	Response.Redirect "bli_medlem.asp?user="
End IF

Set rs = Nothing
PoffeMedlem sedan apr. 20022 743 inlägg
#3

Det räcker med en tråd.. Se mitt svar i den andra...

@ndersMedlem sedan juni 200032 969 inlägg
#4

Där var det mycket som var konstigt på en och samma gång. Vi börjar så här:

Varför loopar du igenom hela medlemstabellen när du ska kolla om användarnamnet är upptaget? Strunta i loopen, och ställ kontrollfrågan direkt.

PoffeMedlem sedan apr. 20022 743 inlägg
#5

Haha, fy fan måste börja sova!
Tänkte inte en tanke på det, tur att vi har dig @!

@ndersMedlem sedan juni 200032 969 inlägg
#6

Men det är ju inte lätt att hänga med när det postas flera trådar om samma ämne...

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