Avatar billede slapstick Nybegynder
23. oktober 2001 - 13:10 Der er 8 kommentarer og
1 løsning

singulært brugernavn

jeg prøver at lave en ting der gør at man ikke kan oprette det samme brugernavn 2 gange, er der nogen der evt har et eksempel på hvordan? for det jeg har lavet virker nemlig ikke en flyvende fis !

<%@ Language=\"VBSCRIPT\" %>
<% Response.buffer = True %>
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\\Inetpub\\db\\register.mdb\"
cSQL = \"SELECT * FROM brugere\"
set rs = Conn.Execute(cSQL)
Do While not rs.EOF
If Request.Form(\"brugernavn\") = rs(\"brugernavn\") Then
response.write \"brugernavnet er optaget\"
rs.movenext
loop

\'Else
SQL = \"INSERT INTO brugere (brugernavn, kodeord, niveau, navn, tlfnr, email) VALUES (\'\" & Request.Form(\"brugernavn\") & \"\',\'\" & Request.Form(\"kodeord\")& \"\',\'\" & Request.Form(\"niveau\") & \"\',\'\" & Request.Form(\"navn\") & \"\',\'\" & Request.Form(\"tlfnr\") & \"\',\'\" & Request.Form(\"email\") & \"\')\"

Conn.Execute(SQL)
Conn.Close()
Set Conn = nothing
test = Request.Form(\"brugernavn\")
%>
<HTML>
<head>
<title>opret bruger</title>

<link rel=\"stylesheet\" href=\"register.css\">

</head>
<BODY  bgcolor=\"#7795A5\" class=\"text\">
<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td bgcolor=\"#0472AA\" class=\"text\">
<font size=\"1\"><b>Brugeren <font color=\"red\"><%=test %></font> er nu oprettet... Klik <a href=\"liste.asp\">her</a><br>for at se en liste over brugere og kunder ! </b></font>
</td></tr>

</table>
</BODY>
</HTML>
<%
\'End If
%>

Avatar billede parazite Nybegynder
23. oktober 2001 - 13:13 #1
Uden at ane en daddel om ASP, så vil jeg mene du mangler et WHERE-kriterie i din SQL? Her henter du jo bare * fra brugere, men hvis du smider et WHERE brugernavn = \'indtastet_brugernavn\' ind, så må du kunne lave din sammenligning?
Avatar billede parazite Nybegynder
23. oktober 2001 - 13:14 #2
Og hvis hvad jeg siger lyder som volapyk, så bare overse min kommentar! ;)
Avatar billede slapstick Nybegynder
23. oktober 2001 - 13:16 #3
lyder egentlig sandt nok hehehehe
Avatar billede parazite Nybegynder
23. oktober 2001 - 13:22 #4
OK - lidt mere. Hiv brugernavnet ud af DB\'en med et WHERE-kriterie.
Tjek om det udtrukne brugernavn = \"\", og er det det, så fortsæt. Er det ikke, så skrig højt til brugeren. Så slipper du også for at løbe alle allerede oprettede brugere igennem med din while-løkke, og derved sparer du tid. :)
Avatar billede tue Nybegynder
23. oktober 2001 - 13:25 #5
set conndb = server.createobject(\"adodb.connection\")
conndb.open \"driver={Microsoft Access Driver (*.mdb)}; dbq=c:\\inetpub\\db\\register.mdb\"

sql = \"select * from brugere\"
set rs = conndb.execute(sql)

do while not rs.eof
    if lcase(request(\"brugernavn\")) = lcase(rs(\"brugernavn\")) then
          response.write \"......\"
    end if
rs.movenext
loop
Avatar billede nil.dk Nybegynder
23. oktober 2001 - 13:36 #6
parazite har ret. du spilder en masse krudt ved at hive alle brugere ud af databasen og så løbe dem allesammen igennem.

hovedreglen er normalt at man skal lave så meget i selve databasen som man overhovedet kan, så brug SQL til at sortere i databasen og hiv så kun det ud du skal bruge.
Avatar billede pepsi2 Nybegynder
23. oktober 2001 - 13:55 #7
<%
strBruger = Request.Form (\"brugernavn\")
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"db\\register.mdb\")
Conn.Open DSN

SQL =\"SELECT brugernavn FROM brugere WHERE brugernavn = \'\" & strbruger & \"\'\"
set rs = conn.execute(SQL)

if not rs.eof then
Response.Write \"Brugernavnet er optaget\"
Response.Write \"<br><br><a href=java script:history.back(1)>Tilbage</a>\"
else
SQL = \"INSERT INTO brugere (brugernavn, kodeord, niveau, navn, tlfnr, email) VALUES (\'\" & Request.Form(\"brugernavn\") & \"\',\'\" & Request.Form(\"kodeord\")& \"\',\'\" & Request.Form(\"niveau\") & \"\',\'\" & Request.Form(\"navn\") & \"\',\'\" & Request.Form(\"tlfnr\") & \"\',\'\" & Request.Form(\"email\") & \"\')\"
conn.execute(SQL)
Response.Write \"Du er nu oprettet som \" & strBruger
end if

Conn.Close
set conn = nothing
%>
Avatar billede slapstick Nybegynder
23. oktober 2001 - 15:29 #8
argh
kom til at gi point til den forkerte
det sku ha været parazite..
sorry bout that :( men takker mange gange for hjælpen !! :)
Avatar billede parazite Nybegynder
23. oktober 2001 - 15:45 #9
tue : Skal vi finde ud af noget med en point-bytning? :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester