29. april 2002 - 16:20Der er
25 kommentarer og 1 løsning
Hente oplysning fra db!
Hejsa ... Jeg bruger følgende til at connecte til min database:
Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") 'Modify and use this connection if your database is in your database directory 'Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=Login.mdb" Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Brugernavn, Brugerkode FROM Bruger" rs.Open SQL, Conn
Det virker fint nok og som I kan se så skal den hente Brugernavn og Brugerkoden fra databasen! Nu kan jeg så bare ikke få den til at arbejde sammen med følgende kode:
sValidEmailAddress = "(Her skal den så bruge brugernavnet fra databasen)" sValidPassword = "(Her skal den så bruge brugerkoden fra databasen)"
Er der nogle der kan hjælpe mig! Det skal jo lige siges at der er flere bruger end en i databasen! Den skal altså medtage dem alle!
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Yep jeg fandt fejlen med at jeg havde et par % for meget ... men da jeg så checket det viste det sige at det stadig ikke virkede. Jeg havde først tid i dag til at checke det! Jeg havde brugt følgende:
Hvis jeg gør det så er <% =rs("Brugernavn")%> den email man skal angive og <% =rs("Brugerkode")%>" er koden ... den hente det altså ikke fra databasen!
Hmm... sValidEmailAdress ... er det ikke selv en streng. Hvis det er det, er det så ikke galt at bruge <% %> INDE i ASP-dokumentet. Men det var måske også det du selv havde hittet ud? :-)
Hvor de fire ' er det samme som " (Jeg mener det er sådan i ASP) Det er vel og mærke hvis SELVE strengen SKAL have dobbelt citationstegn. Ellers er det jo såre enkelt:
Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") 'Modify and use this connection if your database is in your database directory 'Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=Login.mdb" Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Brugernavn, Brugerkode FROM Bruger" rs.Open SQL, Conn
Det første du skrev virker ikke ... hvis jeg bruger det andet du skrev så virker det ... men kun som jeg har haft det til at virke før! Man kan kun bruge det første brugernavn og ikke alle i tabellen! Hvad skal jeg gøre for at rette det?
Det sidste som kotelet sagde: sValidEmailAddress = rs("Brugernavn") sValidPassword = rs("Brugerkode") Virker også fint nok men den gør så man kun kan bruge det første brugernavn i tabellen og ikke dem alle! Hvordan kan jeg få det ordnet så man kan bruge alle brugerne?
Synes godt om
Slettet bruger
29. april 2002 - 17:14#11
kan du ikke forklare mig i hvilket sammenhæng dette skal bruges så er det lidt nemmer e&:-D er det ved login eller sådan noget ?
ok.... kommer lige med et forslag... har selv lige lavet dette:
jeg bruger dette:
<% ' bruges til at tjekke om brugeren finde i db ved login ' Sender resultaterne fra tilføj links til databasen ' Database connection Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/koder/asp/forum/forum.mdb")
strUsername = Trim(Replace(Request.Form("navn"),"'","")) strPassword = Trim(Replace(Request.Form("password"),"'","")) strSQL ="SELECT * FROM bruger WHERE UCase(navn) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'" set rs = conn.execute(strSQL) 'først tjekke om brugeren findes ved at tjekke om recordsetet er tomt. if not rs.EOF then if LCase(rs("navn")) = LCase(strUsername) then 'LOGIN OK session("brugernavn") = LCase(strUsername) Response.Redirect("index.asp") else 'INGEN BRUGER FUNDET 'Eller en blev fundet men databasen bruger navn passer ikke med det 'indtastede brugernavn end if else 'Brugeren findes ikke
Hmmm ... Du må lige rette mig undervejs men en streng som sValidEmailAddress kan jo kun hedde éen ting, ikke sandt? ... Jeg forstår ikke hvordan du vil give den flere vlrdier på samme tid.
Hvis det er til login kunne du jo gøre således:
DO IF request.form("brugernavn") = rs("brugernavn") THEN IF request.form("brugerpass") = rs("brugerkode") THEN session("login") = "true" ' BRugeren er nu logget på EXIT DO END IF END IF rs.Movenext LOOP while not rs.EOF IF NOT session("login") = "true" THEN session("login") = "false" ' Brugeren er IKKE logget på
Hvis brugerens navn og adganskode passer til de tilsvarende i databasen hopper man UD af DO/LOOP og session("login") sættes til "true" for at indikere at man er logget på.
jeg kan ikke bruge det i har skrevet ... jeg skal bruge hvor de 2 strenge brugers: sValidEmailAddress = rs("Brugernavn") sValidPassword = rs("Brugerkode")
DO IF request.form("brugernavn") = rs("brugernavn") THEN IF request.form("brugerpass") = rs("brugerkode") THEN session("login") = "true" ' BRugeren er nu logget på sValidEmailAddress = rs("Brugernavn") sValidPassword = rs("Brugerkode") EXIT DO END IF END IF rs.Movenext LOOP while not rs.EOF IF NOT session("login") = "true" THEN session("login") = "false" ' Brugeren er IKKE logget på
Den samme, men nu er dine to strenge defineret... Jeg går i mit script ud fra, at der ikke er to brugere der har samme navn.
Jeg har fundet ud af at der ikke er nogle der kan hjæpe, jeg har også haft fat i nogle top profies i asp! Så jeg har valgt at programere det hele om!
Synes godt om
Ny brugerNybegynder
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.