Avatar billede forcedesigner Nybegynder
03. april 2002 - 14:54 Der er 15 kommentarer og
1 løsning

Opret pro...

Jeg er ved lave en opret profil.
Det er brugernavn, password, Fornavn, Efternavn og email der er der vigtigste, så det er kun dem der har betingelserne, mem den hvis viser fejl alligevel.

Der ikke noget galt med Databasen.

Her koden:

<%
Response.Buffer = True

brugernavn = Request("brugernavn")
password = Request("password")
fornavn = Request("fornavn")
efternavn = Request("efternavn")
email = Request("email")

Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("system.mdb") & ";UID=admin;PWD=;"

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
   
    'Tester om brugernavn findes i databasen
Set rs = Conn.execute ("SELECT * FROM bruger WHERE brugernavn='" & brugernavn & "'")

If Not rs.Eof Then
    Response.Write("<p><font color=red>Brugernavn er allerede i Oprettet!</font></p>")
    fejl = true
End If
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then       
               
                if brugernavn = "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal vælge et brugernavn<br></font></span>")
                end if
               
                if password = "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal vælge et password!<br></font></span>")
                end if
               
                if fornavn= "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal angive dit fornavn!<br></font></span>")
                end if
               
                if efternavn= "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal angive dit efternavn!<br></font></span>")
                end if
               
                if email= "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal angive din e-mail!<br></font></span>")
                end if
               
                   
                    if brugernavn <> "" AND password <> "" AND fornavn <> "" AND efternavn <> "" AND email <> "" then
                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                      rs("password") = Request.form("password")
                      rs("fornavn") = Request.form("fornavn")
                      rs("efternavn") = Request.form("efternavn")
                      rs("email") = Request.form("email")
                      rs("alder") = Request.form("alder")
                      rs("firma") = Request.form("firma")
                      rs("hjemmeside") = Request.form("hjemmeside")
                      rs("icq") = Request.form("icq")
                      rs("profil") = Request.form("profil")
                      rs("hits") = "0"
                    rs.update
                    Response.Redirect("opret.asp")
                    end if
                    end if %>
<form method="post" action="opret.asp" id=form name=form>


hjælp med at finde fejlen.
Avatar billede coltau Juniormester
03. april 2002 - 15:02 #1
Prøv med denne her:

Set rs = Conn.execute ("SELECT * FROM bruger WHERE brugernavn LIKE '" & brugernavn & "'")

som ikke tager hensyn til store og små bogstaver.
Avatar billede rou Nybegynder
03. april 2002 - 15:08 #2
Coltau, LIKE er igen uhyggeligt langsom. Brug istedet

<%
Set rs = Conn.execute ("SELECT * FROM bruger WHERE LCASE(brugernavn) = '" & LCase(brugernavn) & "'")
%>

Jeg husker ikke om det hedder LCase i Access, ellers skifter du bare den første ud med LOWER()
Avatar billede forcedesigner Nybegynder
03. april 2002 - 15:13 #3
Den siger der er fejl ved der hvor der stå: rs.AddNew
Avatar billede forcedesigner Nybegynder
03. april 2002 - 15:17 #4
Virker stadig ik'
Avatar billede coltau Juniormester
03. april 2002 - 16:25 #5
Der er altså også lidt rod i koden:

Prøv at bytte om på disse linier:

 
    'Tester om brugernavn findes i databasen
Set rs = Conn.execute ("SELECT * FROM bruger WHERE brugernavn='" & brugernavn & "'")

If Not rs.Eof Then
    Response.Write("<p><font color=red>Brugernavn er allerede i Oprettet!</font></p>")
    fejl = true
End If

' Nedenstående linier skal udføres før ovenstående da det er nedenstående recordset som du arbejder videre på længere nede i koden. (RS.AddNew)

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
Avatar billede forcedesigner Nybegynder
04. april 2002 - 00:14 #6
Mr. coltau kan du ikke lave det så hvis der er rod. Jeg forståd ikke rigtigt hvad du mener med:
' Nedenstående linier skal udføres før ovenstående da det er nedenstående recordset som du arbejder videre på længere nede i koden. (RS.AddNew)

kan du ikke lave koden så den er rigtig bygget op, TAK.
Avatar billede coltau Juniormester
04. april 2002 - 10:51 #7
Så skal linierne se således ud:

<%
Response.Buffer = True

brugernavn = Request("brugernavn")
password = Request("password")
fornavn = Request("fornavn")
efternavn = Request("efternavn")
email = Request("email")

Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("system.mdb") & ";UID=admin;PWD=;"
 
    'Tester om brugernavn findes i databasen
Set rs = Conn.execute ("SELECT * FROM bruger WHERE brugernavn='" & brugernavn & "'")

If Not rs.Eof Then
    Response.Write("<p><font color=red>Brugernavn er allerede i Oprettet!</font></p>")
    fejl = true
End If

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
   
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then       
               
                if brugernavn = "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal vælge et brugernavn<br></font></span>")
                end if
               
                if password = "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal vælge et password!<br></font></span>")
                end if
               
                if fornavn= "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal angive dit fornavn!<br></font></span>")
                end if
               
                if efternavn= "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal angive dit efternavn!<br></font></span>")
                end if
               
                if email= "" then
                    Response.Write("<span class='skrift'><font color='#FF3300'>Du skal angive din e-mail!<br></font></span>")
                end if
               
                   
                    if brugernavn <> "" AND password <> "" AND fornavn <> "" AND efternavn <> "" AND email <> "" then
                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                      rs("password") = Request.form("password")
                      rs("fornavn") = Request.form("fornavn")
                      rs("efternavn") = Request.form("efternavn")
                      rs("email") = Request.form("email")
                      rs("alder") = Request.form("alder")
                      rs("firma") = Request.form("firma")
                      rs("hjemmeside") = Request.form("hjemmeside")
                      rs("icq") = Request.form("icq")
                      rs("profil") = Request.form("profil")
                      rs("hits") = "0"
                    rs.update
                    Response.Redirect("opret.asp")
                    end if
                    end if %>
<form method="post" action="opret.asp" id=form name=form>
Avatar billede forcedesigner Nybegynder
04. april 2002 - 13:33 #8
Mr. coltau, jeg kan stadig ikke få det til at virke rigtigt, ved ikke hvorfor.

Hvis jeg udfylder alle fælderne virker det, men hvis jeg kun udfylder:

Brugernavn
Password
Fornavn
Efternavn
Email

virker det ikke, den siger at der er fejl ved:  rs.update

Kan du hjælpe.
Avatar billede forcedesigner Nybegynder
05. april 2002 - 16:40 #9
OK. du kunne ikke hjælpe, jeg tror at jeg skal ude at finde en god opret kode på nettet, men ellers mange tak, allesammen.
Avatar billede coltau Juniormester
05. april 2002 - 22:51 #10
Jeg tror at dit problem er at du ikke forstår ASP godt nok.

Jeg har løst det ene problem - det gav ingen point. :-(

Her får du løsningen på det andet selv om du har lukket spørgsmålet.

Hvis du kun udfylder ovenstående felter skal update-koden se således ud:

                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                      rs("password") = Request.form("password")
                      rs("fornavn") = Request.form("fornavn")
                      rs("efternavn") = Request.form("efternavn")
                      rs("email") = Request.form("email")
                      rs("alder") = null
                      rs("firma") = null
                      rs("hjemmeside") = null
                      rs("icq") = 0
                      rs("profil") = null
                      rs("hits") = "0"
                    rs.update
                   
Alle tekstfelter der skal opdateres med en blank værdi skal tildeles konstanten NULL - men når det er en ny record du indsætter behøver du ikke at udfylde felterne:

                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                      rs("password") = Request.form("password")
                      rs("fornavn") = Request.form("fornavn")
                      rs("efternavn") = Request.form("efternavn")
                      rs("email") = Request.form("email")
                      rs("hits") = "0"
                    rs.update

Good luck. !
Avatar billede forcedesigner Nybegynder
05. april 2002 - 23:34 #11
TAk Caltau.

Jeg vil stadig give dig point hvis vi kan får det til at virke.

Jeg har prøv de nulls, mennnn.......

Hvis jeg udfylder dem kommer det ikke på databasen, det skal de jo gøre.
Dem uden null virker OK. (Det har de altid gjort)

Null skal komme i DB hvis man udfylder dem hvis man ikke gøre er det lige meget bare det ikke viser fejl.
Det er jo derfor de ikke har nogle betingelser.

Håber du forståd.
Avatar billede coltau Juniormester
05. april 2002 - 23:52 #12
Så tror jeg ikke helt jeg forstår - men prøv at stille ? igen og formuler det andeerledes - noget i retningen af:

Disse linier virker:

then
                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                      rs("password") = Request.form("password")
                      rs("fornavn") = Request.form("fornavn")
                      rs("efternavn") = Request.form("efternavn")
                      rs("email") = Request.form("email")
                    '  rs("alder") = Request.form("alder")
                  '  rs("firma") = Request.form("firma")
                  '  rs("hjemmeside") = Request.form("hjemmeside")
                    '  rs("icq") = Request.form("icq")
                    '  rs("profil") = Request.form("profil")
                  '  rs("hits") = "0"
                    rs.update

men hvis jeg medtager rs("alder") = Request.form("alder") så kommer der fejl - selvom at feltet alder er udfyldt.

Altså hvis det er problemet.
Avatar billede forcedesigner Nybegynder
06. april 2002 - 00:16 #13
Nej, nej, nej

Det er sådan at:

Brugernavn skal udfyldes
password skal udfyldes
fornavn skal udfyldes
efternavn skal udfyldes
email skal udfyldes

De andre må gerne udfyldes, men skal ikke.
Det er derfor der ikke er betingelser på dem.

Hvis de bliver udfyldt skal de komme i databasen, hvis ikke er det lige meget, det er kun dem med betingelser der er de vigtige.

Brugernavn *
password *
fornavn *
efternavn *
email *
alder
firma
hjemmeside
icq
profil

* skal udfyldes
uden * må gerne udfyldes, men skal ikke

NU tror jeg du forståd det.
Avatar billede coltau Juniormester
06. april 2002 - 00:27 #14
Ka' det her så bruges. ?

                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                      rs("password") = Request.form("password")
                      rs("fornavn") = Request.form("fornavn")
                      rs("efternavn") = Request.form("efternavn")
                      rs("email") = Request.form("email")
                      if Request.form("alder") <> "" then
                        rs("alder") = Request.form("alder")
                      end if
                      if Request.form("firma") <> "" then
                        rs("firma") = Request.form("firma")
                      end if
                      osv ...
                    rs.update
Avatar billede forcedesigner Nybegynder
06. april 2002 - 00:30 #15
OK vent
Avatar billede forcedesigner Nybegynder
06. april 2002 - 00:47 #16
Nu virker det helle ik'

Ikke fordi jeg har lavet fejl men...det gøre det bare ikke
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