Avatar billede kalkunen Nybegynder
18. april 2002 - 19:13 Der er 24 kommentarer og
1 løsning

Tjeck brugernavn

hej er der nogen der har koden til t tjekke om et brugwernavn er ledigt i en acess database
Avatar billede killer_r Nybegynder
18. april 2002 - 19:19 #1
Bare lav en SQL-streng og hvis den bliver EOF så er det ledigt!!!

EKS:

SQL = "select * from tabel where brugernavn = " & request.form("tjekbruger")
set rs = Conn.execute(SQL)
if rs.EOF then
Response.Write "Ledigt"
else
Response.Write "Ikke Ledigt"
end if
Avatar billede kalkunen Nybegynder
18. april 2002 - 19:22 #2
hvad gør man så hvis det er til en tilmeldnings formular, og der kun skal stå noget hvis det er optaget?
Avatar billede eagleeye Praktikant
18. april 2002 - 19:36 #3
SQL = "select * from tabel where brugernavn = " & request.form("tjekbruger")
set rs = Conn.execute(SQL)
if not rs.EOF then
  Response.Write "Ikke Ledigt"
end if
Avatar billede kalkunen Nybegynder
18. april 2002 - 20:03 #4
Kan ikke få det til at virke, her er hele den grimme kode:


<%
Response.Buffer = True
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")
%>
<html>
<head><title>Dragonball-center</title></head>
<body>
<form action="DatabaseLinkTilfoej.asp" method="post">
<font size="4">Bliv medlem af Dragonball-center</font></b>
<%

                if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                navn = Request("navn")
                brugernavn = Request("brugernavn")
                email = Request("email")
                password = Request("password")
                password2 = Request("password")
               
    if brugernavn = "" then
                err = 1
        errmess = errmess & "Du skrev ikke noget brugernavn<br>"
    end if
   
    if password = "" then
                err = 1
        errmess = errmess & "Du skrev ikke noget password<br>"
    end if
   
    if InStr(email,"@") = 0 or InStr(email,".") = 0 or email = "" then
                err = 1
        errmess = errmess & "Din email adresse er ikke gyldig<br>"
    end if
   
    if navn = "" then
                err = 1
        errmess = errmess & "Du skrev ikke dit navn<br>"
    end if
   
    if err = 0 then
   
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "select * from members where brugernavn = " & request.form("brugernavn")
set rs = Conn.execute(SQL)
if not rs.EOF then
  Response.Write "Ikke Ledigt"
end if
               
                    rs.AddNew
                    rs("navn") = navn
                    rs("email") = email
                    rs("password") = password
                    rs("brugernavn") = brugernavn
                    rs.update
                    Response.Write "Du er nu tilføjet til Databasen :)"
                    end if
               
                end if %>
                <p><%= errmess %>
<br>navn: <input type="text" name="navn" value="<%=Request("navn")%>">
<br>brugernavn: <input type="text" name="brugernavn" value="<%=Request("brugernavn")%>">
<br>password: <input type="text" name="password">
<br>email: <input type="text" name="email" value="<%=Request("email")%>">
<p><input type="submit" value="Tilmeld">
</form>


<%
'Lukker connection
conn.close
set conn = nothing
%>
</body>
</html>


kan i hjælpe mig, med at rette den :)
Avatar billede eagleeye Praktikant
18. april 2002 - 20:08 #5
hvis du vil benytte dig af rs.AddNew skal du åben recordsettet på en anden måde sådan her:
rs.open SQL, Conn, 3, 3
Avatar billede eagleeye Praktikant
18. april 2002 - 20:09 #6
Det her:
if not rs.EOF then
  Response.Write "Ikke Ledigt"
end if
               
                    rs.AddNew
                    rs("navn") = navn
                    rs("email") = email
                    rs("password") = password
                    rs("brugernavn") = brugernavn
                    rs.update
                    Response.Write "Du er nu tilføjet til Databasen :)"


SKAL LAVES TIL:
if not rs.EOF then
  Response.Write "Ikke Ledigt"
else
               
                    rs.AddNew
                    rs("navn") = navn
                    rs("email") = email
                    rs("password") = password
                    rs("brugernavn") = brugernavn
                    rs.update
                    Response.Write "Du er nu tilføjet til Databasen :)"
end if
Avatar billede eagleeye Praktikant
18. april 2002 - 20:10 #7
du skal jo kun ligge folk ind hvis de ikke findes...
Avatar billede eagleeye Praktikant
18. april 2002 - 20:33 #8
Altså sådan her kommer koden til at se ud.



<%
Response.Buffer = True
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")
%>
<html>
<head><title>Dragonball-center</title></head>
<body>
<form action="DatabaseLinkTilfoej.asp" method="post">
<font size="4">Bliv medlem af Dragonball-center</font></b>
<%

                if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                navn = Request("navn")
                brugernavn = Request("brugernavn")
                email = Request("email")
                password = Request("password")
                password2 = Request("password")
               
    if brugernavn = "" then
                err = 1
        errmess = errmess & "Du skrev ikke noget brugernavn<br>"
    end if
   
    if password = "" then
                err = 1
        errmess = errmess & "Du skrev ikke noget password<br>"
    end if
   
    if InStr(email,"@") = 0 or InStr(email,".") = 0 or email = "" then
                err = 1
        errmess = errmess & "Din email adresse er ikke gyldig<br>"
    end if
   
    if navn = "" then
                err = 1
        errmess = errmess & "Du skrev ikke dit navn<br>"
    end if
   
    if err = 0 then
   
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "select * from members where brugernavn = " & request.form("brugernavn")
'Set rs = Conn.execute(SQL)
rs.Open SQL, Conn, 3, 3
if not rs.EOF then
  Response.Write "Ikke Ledigt"
else
               
                    rs.AddNew
                    rs("navn") = navn
                    rs("email") = email
                    rs("password") = password
                    rs("brugernavn") = brugernavn
                    rs.update
                    Response.Write "Du er nu tilføjet til Databasen :)"
end if
                    end if
               
                end if %>
                <p><%= errmess %>
<br>navn: <input type="text" name="navn" value="<%=Request("navn")%>">
<br>brugernavn: <input type="text" name="brugernavn" value="<%=Request("brugernavn")%>">
<br>password: <input type="text" name="password">
<br>email: <input type="text" name="email" value="<%=Request("email")%>">
<p><input type="submit" value="Tilmeld">
</form>


<%
'Lukker connection
conn.close
set conn = nothing
%>
</body>
</html>
Avatar billede eagleeye Praktikant
18. april 2002 - 20:38 #9
Hov så lige før denne:
if brugernavn = "" then
  err = 1               


Skal du indsætte: err = 0
err = 0
if brugernavn = "" then
  err = 1
Avatar billede kalkunen Nybegynder
18. april 2002 - 22:17 #10
Nu harjeg sat koden op som du sage, men der kommer fejl når tester den:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/hogwarts/images/DatabaseLinkTilfoej.asp, line 44


her er koden, som du age den skulle være:

<%
Response.Buffer = True
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")
%>
<html>
<head><title>Dragonball-center</title></head>
<body>
<form action="DatabaseLinkTilfoej.asp" method="post">
<font size="4">Bliv medlem af Dragonball-center</font></b>
<%

                if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                navn = Request("navn")
                brugernavn = Request("brugernavn")
                email = Request("email")
                password = Request("password")
err = 0               
err = 0
if brugernavn = "" then
  err = 1
        errmess = errmess & "Du skrev ikke noget brugernavn<br>"
    end if
   
    if password = "" then
                err = 1
        errmess = errmess & "Du skrev ikke noget password<br>"
    end if
   
    if InStr(email,"@") = 0 or InStr(email,".") = 0 or email = "" then
                err = 1
        errmess = errmess & "Din email adresse er ikke gyldig<br>"
    end if
   
    if navn = "" then
                err = 1
        errmess = errmess & "Du skrev ikke dit navn<br>"
    end if
   
    if err = 0 then
   
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "select * from members where brugernavn = " & request.form("brugernavn")
set rs = Conn.execute(SQL)

if not rs.EOF then
  Response.Write "Brugernavnet er allerede taget"
else
               
                    rs.AddNew
                    rs("navn") = navn
                    rs("email") = email
                    rs("password") = password
                    rs("brugernavn") = brugernavn
                    rs.update
                    Response.Write "<p>Du er nu tilføjet til Databasen :)"
end if
                    end if
               
                end if %>
                <p><%= errmess %>
<br>navn: <input type="text" name="navn" value="<%=Request("navn")%>">
<br>brugernavn: <input type="text" name="brugernavn" value="<%=Request("brugernavn")%>">
<br>password: <input type="text" name="password">
<br>email: <input type="text" name="email" value="<%=Request("email")%>">
<p><input type="submit" value="Tilmeld">
</form>


<%
'Lukker connection
conn.close
set conn = nothing
%>
</body>
</html>
Avatar billede eagleeye Praktikant
18. april 2002 - 22:20 #11
er bruger navn defineret som tekst i databasen? Hvis Ja så ret:
SQL = "select * from members where brugernavn = " & request.form("brugernavn")

TIL DENNE:
SQL = "select * from members where brugernavn = '" & request.form("brugernavn") & "';"


Der skal nemlig ' omkring data i SQL-sætningen hvis kolonnen er defineret om tekst. Hvis kolonnen er defineret som tal skal der IKKE ' omkring.
Avatar billede kalkunen Nybegynder
18. april 2002 - 22:34 #12
det virker stadigvæk ikke???
Avatar billede eagleeye Praktikant
18. april 2002 - 22:37 #13
Prøv at udskrive din SQL sådan her:

SQL = "select * from members where brugernavn = '" & request.form("brugernavn") & "';"
response.write SQL
set rs = Conn.execute(SQL)

Og post resultet her.
Avatar billede kalkunen Nybegynder
19. april 2002 - 13:50 #14
sådan?

<%
Response.Buffer = True
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")
%>
<html>
<head><title>Dragonball-center</title></head>
<body>
<form action="DatabaseLinkTilfoej.asp" method="post">
<font size="4">Bliv medlem af Dragonball-center</font></b>
<%

                if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                navn = Request("navn")
                brugernavn = Request("brugernavn")
                email = Request("email")
                password = Request("password")
err = 0               
err = 0
if brugernavn = "" then
  err = 1
        errmess = errmess & "Du skrev ikke noget brugernavn<br>"
    end if
   
    if password = "" then
                err = 1
        errmess = errmess & "Du skrev ikke noget password<br>"
    end if
   
    if InStr(email,"@") = 0 or InStr(email,".") = 0 or email = "" then
                err = 1
        errmess = errmess & "Din email adresse er ikke gyldig<br>"
    end if
   
    if navn = "" then
                err = 1
        errmess = errmess & "Du skrev ikke dit navn<br>"
    end if
   
    if err = 0 then
   
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "select * from members where brugernavn = '" & request.form("brugernavn") & "';"
response.write SQL
set rs = Conn.execute(SQL)

if not rs.EOF then
  Response.Write "Brugernavnet er allerede taget"
else
               
                    rs.AddNew
                    rs("navn") = navn
                    rs("email") = email
                    rs("password") = password
                    rs("brugernavn") = brugernavn
                    rs.update
                    Response.Write "<p>Du er nu tilføjet til Databasen :)"
end if
                    end if
               
                end if %>
                <p><%= errmess %>
<br>navn: <input type="text" name="navn" value="<%=Request("navn")%>">
<br>brugernavn: <input type="text" name="brugernavn" value="<%=Request("brugernavn")%>">
<br>password: <input type="text" name="password">
<br>email: <input type="text" name="email" value="<%=Request("email")%>">
<p><input type="submit" value="Tilmeld">
</form>


<%
'Lukker connection
conn.close
set conn = nothing
%>
</body>
</html>
Avatar billede eagleeye Praktikant
19. april 2002 - 17:03 #15
ja sådan.
Avatar billede eagleeye Praktikant
19. april 2002 - 17:10 #16
som jeg har vist har skrevet får så skal du åbne recordset'et på en anden måde når du benytter dig af rs.AddNew functionen:

Denne linie:
set rs = Conn.execute(SQL)

Rettes Til:
rs.open SQL, Conn, 3, 3
Avatar billede eagleeye Praktikant
19. april 2002 - 17:16 #17
Hvis du vil beholde denne linie:
set rs = Conn.execute(SQL)

Skal du ikke benytte rs.AddNew men lave indsæteklsen med en SQL sætning og så skiftes alt dette ud:

      rs.AddNew
      rs("navn") = navn
      rs("email") = email
      rs("password") = password
      rs("brugernavn") = brugernavn
      rs.update


Med disse to linier:
SQL = "INSERT INTO members (navn, email, password, brugernavn) VALUES ('" & navn & "', '" & email & "', '" & password & "', '" & brugernavn & "');"
conn.execute(SQL)


Så du skal enten vælge løsningen fra forrige post (17:10:33) eller løsningen fra denne.
Avatar billede kalkunen Nybegynder
19. april 2002 - 18:29 #18
jeg prøvede at rette (13:50:20) til med (17:10:33)
men så kommer denne meddelelse frem når man har posted formularen korekt::

select * from members where brugernavn = 'd';
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.

/tolkienfans/filmen/tilfoej.asp, line 56
Avatar billede eagleeye Praktikant
19. april 2002 - 18:50 #19
Så har du ikke skrive rettigheder til database filen eller den folder som databasen ligger i.

Ligger den lokalt på din maskine eller på en web-seerver på nettet?
Avatar billede kalkunen Nybegynder
19. april 2002 - 19:04 #20
jeg bruger friserverplads.dk til at teste scriptet med!
her er adressen til databasen: www.friserverplads.dk/hogwarts/images/db.mdb
Avatar billede kalkunen Nybegynder
19. april 2002 - 19:06 #21
Avatar billede eagleeye Praktikant
19. april 2002 - 19:11 #22
jeg har lige prøvet dit link og jeg får:

Du er nu tilføjet til Databasen :)

Alle felter med teksten Test.
Avatar billede kalkunen Nybegynder
19. april 2002 - 20:03 #23
jamen der står også select * from members where brugernavn = 'tests';
hvordan får jeg det væk?
Avatar billede eagleeye Praktikant
19. april 2002 - 22:24 #24
Du fjerne linien:

response.write SQL
Avatar billede kalkunen Nybegynder
20. april 2002 - 11:57 #25
så virker det :)
tak for hjælpen...
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