webForumDet fria alternativet

Skillnad mellan "P" och "p"

ASP

19 svar · 468 visningar · startad av hallmert

Medlem sedan dec. 2004182 inlägg
Frågan#1

Hej på er! Jag håller på med en grej där man ska regga sig som medlem. Om det finns en "Patrik" registrerad, så kan den ändå regga en användare om personen reggar sig som "patrik", det är ju lite knäppt. Går det att få den här koden till att göra någon icke-skillnad på stora och små bokstäver? :)

Den här koden använder jag nu som kollar om användarnamnet finns, men jag vill ha den så den inte regga någon "patrik" även fast det är "Patrik" som är registrerad.

Tack på förhand!

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

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

	End If
Medlem sedan juni 200032 967 inlägg
#2
	IF connect.execute("select * from members where ucase(username)='" & ucase(request.form("username")) & "'").eof then
Medlem sedan dec. 2004182 inlägg
#3

Hm, stödde på ett annat problem.

<%
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("press") = "Användaren har inte gjort någon presentation ännu."
	RecSet("bild") = "ingen.jpg"
	RecSet("datum") = Now()
	RecSet("status") = "Offline"
	
	RecSet.Update

	Connect.Close
	Set RecSet = nothing
	Set Connect = nothing

Session("meddelande") = "Nu är du registrerad. Prova att logga in på förstasidan!"
Response.Redirect "bli_medlem.asp?user=reggad"

%

Jag får fel på "RecSet.Update", varför?

Felet: 

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E2F)
[Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
/jobb/theevents.net/add_member.asp, line 62
Medlem sedan dec. 2002299 inlägg
#4

RecSet.AddNew

Om du ska uppdatera vad gör den här??
Sen är det så att den försöker spara en ny post med samma id som en annan ..och det är en NO NO i primärnyklar...
Primärnyklar är unika(one of a kind)

Mvh Paddan

Medlem sedan dec. 2004182 inlägg
#5

paddan skrev:

RecSet.AddNew

Om du ska uppdatera vad gör den här??
Sen är det så att den försöker spara en ny post med samma id som en annan ..och det är en NO NO i primärnyklar...
Primärnyklar är unika(one of a kind)

Mvh Paddan

Man ska spara en helt ny användare, så den ska inte uppdatera.
Informationen kommer från ett forumlär på förstasidan där man kan registrera sig till backstage-prylar ju! :) Hur gör jag för att få det att fungera?

Medlem sedan dec. 2002299 inlägg
#6

Sen en sak till...hur vet den vilket ID den ska updatera...skicka med Id:et genom en gömd textruta i formuläret...textrutan kan tex heta id!
och sätt :
Addera = "Select * From members where ID =" & Request.Form("id") & ""

Mvh paddan

Medlem sedan dec. 2004182 inlägg
#7

paddan skrev:

Sen en sak till...hur vet den vilket ID den ska updatera...skicka med Id:et genom en gömd textruta i formuläret...textrutan kan tex heta id!
och sätt :
Addera = "Select * From members where ID =" & Request.Form("id") & ""

Mvh paddan

Man ska spara en helt ny användare, så den ska inte uppdatera.
Informationen kommer från ett forumlär på förstasidan där man kan registrera sig till backstage-prylar ju! Hur gör jag för att få det att fungera?

Medlem sedan dec. 2002299 inlägg
#8

Oki..såg lita fel...
Det databasen säger är att den försöker spara ett ID som redan finns...
Kolla hur det ser ut i din databas..
Har du en primärnykel...!??

Mvh Martin

Medlem sedan dec. 2004182 inlägg
#9

Jepp det har jag.

Medlem sedan dec. 2002299 inlägg
#10

Eller så har du satt index på något fält i databasen och satt att den inte tillåter några kopior...!

Medlem sedan dec. 2002299 inlägg
#11

Kan du skicka den till mig så kan jag testa på min dator så ska jag nog få den att fungera...!

Medlem sedan dec. 2002299 inlägg
#12

Skicka den till :
stanstadpost@hotmail.com

Medlem sedan dec. 2004182 inlägg
#13

Du hade rätt, ett fält var indexerat. Tack! Men jag har fler problem.

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

Den här koden kollar så att inte användarnamnet finns. Men den skickar användaren till bli_medlem.asp?user=" och skriver ut session-meddelandet om att användarnamnet redan finns, ÄVEN fast det inte finns :) Skummt?

Medlem sedan apr. 20022 743 inlägg
#14

Den kollar om Användarnamnet finns ja, men som det är nu så säger den att det finns om det inte finns.

If Not connect.execute("select * from members where ucase(username)='" & ucase(Replace(request.form("username"), "'", "''")) & "'").EOF Then

F.ö. tycker jag inte att du ska lägga till nya poster med RecSet utan med SQL ex:

	Connect.Execute "Instert Into members " _
		& "(fnamn, enamn, username, losen, epost, msn, stad, press, bild, datum, status) " _
		& "Values('" & FixSql(Request.Form("fnamn")) & "','" & FixSql(Request.Form("enamn")) & "','" & FixSql(Request.Form("username")) & "'," _
		& "'" & FixSql(Request.Form("pw1")) & "','" & FixSql(Request.Form("epost")) & "','" & FixSql(Request.Form("msn")) & "'," _
		& "'" & FixSql(Request.Form("stad")) & "', "Användaren har inte gjort någon presentation ännu.", "ingen.jpg", '" & Now & "', "Offline")"
		
	Function FixSql(str)
		FixSql = Replace(Trim(str), "'", "''")
	End Function

La in en liten funktion oxå som byter ' till '' (två '), orkade inte skriva en replace på varje..

Medlem sedan dec. 2004182 inlägg
#15

Poffe skrev:

Den kollar om Användarnamnet finns ja, men som det är nu så säger den att det finns om det inte finns.

If Not connect.execute("select * from members where ucase(username)='" & ucase(Replace(request.form("username"), "'", "''")) & "'").EOF Then

Ska jag lägga den här under den andra Connect.Ececute, eller ersätta? Jag vill ju ha så den INTE reggar en "erik" om det finns en "Erik" redan!

Medlem sedan apr. 20022 743 inlägg
#16

Ersätta. Det kommer inte gå att regga både erick och Erik nu nej.

Medlem sedan dec. 2004182 inlägg
#17

Tack för hjälpen, nu fungerar det.

Medlem sedan juni 200032 967 inlägg
#18

Poffe skrev:

Ersätta. Det kommer inte gå att regga både erick och Erik nu nej.

Hur bestämmer den att erick och Erik är samma?

Medlem sedan dec. 2002299 inlägg
#19

Lita konstig kod det där eftersom det säger till at den ska kolla om namnet finns men om namnet finns redan så skickas du tillbaka men om det inte finns...vad händer då?
Prova denna koden:
<%
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")

Do Until RecSet.EOF

IF Request.Form("username") = RecSet("username") Then
Session("meddelande") = "Det användarnamnet var redan taget! Försök med något annat"
Response.Redirect "bli_medlem.asp?user="
END IF

RecSet.MoveNext
Loop

RecSet.AddNew
RecSet("username") = Request.Form("username")
RecSet("password") = Request.Form("password")
RecSet("reggad") = Date
RecSet.Update

RecSet.Close
Conn.Close
Response.Redirect "regga_klart.asp"
%>

Medlem sedan dec. 2002299 inlägg
#20

ser att du har fått hjälp...gott!

263 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)