09. april 2005 - 19:46Der er
42 kommentarer og 1 løsning
Expected statement fejl..
Hejsa!
Kan ikke længere se fejlen. Får følgende fejl: Microsoft VBScript compilation error '800a0400'
Expected statement
/tracktrace/login.asp, line 17
" WHERE (Qxl = '" & strUID & "')"&_ ^
Linie 17 er " WHERE (Qxl = '" & strUID & "')"&_
----
<% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen<br> Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&server.mappath("/")& "\..\..\DB\database.mdb"
' Opbygning af SQL streng<br><br> strSQL = "SELECT * FROM database WHERE id = "& Session("Id") &";" " WHERE (Qxl = '" & strUID & "')"&_ " AND (Tlf = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("Id") Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("Id") = intUID Response.Redirect("beskyttet.asp") End If Else ' Hvis der ikke var angivet brugernavn og adgangskode strErr = "Du skal skrive både brugernavn og adgangskode" End If
If Len(strErr) > 0 Then ' Her laves fejlmeddelsen om til rød skrift strErr = "<p><font color=red>" & strErr & "</font></p>" End If End If %>
strSQL = "SELECT * FROM database WHERE id = "& Session("Id") &";" &_ " WHERE (Qxl = '" & strUID & "')"&_ " AND (Tlf = '" & strPWD & "')"
response.write(strSQL)
Set rs = myConn.Execute(strSQL) ---------------- Men jeg forstår ikke at du ikke har det sådan her -------------- strSQL = "SELECT * FROM database WHERE id = "& Session("Id") &";" &_ " AND (Qxl = '" & strUID & "')"&_ " AND (Tlf = '" & strPWD & "')"
tror du ikke du har lavet en copy paste fejl? Jeg ville tro det skulle være følgende.. så prøv det lige hvis det er strSQL = "SELECT * FROM database WHERE (Qxl = '" & strUID & "')"&_ " AND (Tlf = '" & strPWD & "')"
Ved ikke om dette her forklarer mere. :-) Jeg er ikke selv en så skrap til Asp endnu, så håber linket forklarer nærmere. http://www.eksperten.dk/spm/602787
Det har virket og så sidder jeg og kæler lidt for designet, og kommer til at slette det oprindelige..
I min database har jeg bl.a. en Id,Qxl,Tlf Det er meningen at folk indtaster deres Qxl og Tlf for at logge ind.
Ved efterfånden ikke om jeg har rodet så meget rundt i det at jeg ikke har Id,Qxl,Tlf rigtig pladseret.
Du kan mig bekendt ikke have to Where clause sepereret af semicolon Endvidere når den fejler så er det fordi du ikke har sat Session("Id") Men den sætter du jo også først længere nede når brugeren er logget ind Så prøv det jeg skrev 20:08:28 og se om ikke det gør trikket :o)
Jamen du havde en sql sætning med to WHERE - hvilket ikke giver mening Du havde også et semicolon hvilket jeg generelt ikke tror kan bruges i sql Du bad den søge på Id i din database ud fra Id i en session som du ikke havde sat Det kan den jo ikke
Nu søger du på de indtastede bruger oplysninger med login og password Det finder den i databasen OG_SÅ sætter den session("Id") som du så på dine andre sider kan teste om er sat :o) Men godt det virker :o)
Det gør vist i denne henseende ikke noget Det der sker er at din rs variablen er et array eller en liste af de brugere som den finder i databasen Men du tester kun på den første Det betyder også at session("Id") vil være id´et på den første forekomst af brugeren i databasen Men hvis du benytter det som du har set det på dit link. Ja så på de sider du skal beskytte der tester du jo blot om den session er tom eller ej...og så er det jo ligegyldig hvilket id den indeholder når blot den indeholder et Men hvorfor indeholder databasen dem flere gange?
Når "kunden" bestiller en vare udfylder kunden personlige oplysninger samt hvilken vare vedkommende ønsker.
Vi følger derefter op på ordren kunden kan ved at logge ind se sin ordre status.
Hvis kunden kommer igen og køber noget mere eller andet skal han det hele igennem een gang til. Det kunne nok være lavet smartere, men indtil vi får råd til en Proff hjemmeside, skal det fungere.
Dermed kommer samme brugernavn og tlf i databasen igen. Så det skal bare virke.. Kan man lave noget i strSQL = "SELECT * hvor det ALTID er den sidste indtastning der bliver vist?
ok men så skal du nok ikke på de beskyttede sider blot teste på om sessionen er sat Så skal du jo slå op i databasen og finde de ting som er specielt relaterede til den enkelte id Altså det jeg mener er jo at du skal blot være sikker på alle kunder ikke kan se alle andre kunders vare :o)
altså når en kunde køber noget så putter du vedkommende i en database? Det er der jo ingen grund til at gøre mere end een gang Du kan jo bare tjekke om kunden er oprettet ..hvis ikke så oprettes kunden :o)
Hmm er der en sikkerheds risiko nu efter din mening?
Du mener at jeg skal ud over Id have noget mere der genkender den enkelte kunde? Det vi lige har lavet tjekker vel om QXL og TLF passer sammen på samme person i ID?
Jeg forstår det bare ikke fordi du sagde at DB bestod af ID TLF QXL Det eneste jeg siger er at du skal huske at tjekke brugeren op mod der hvor varene er så kun de vare der tilhører brugeren bliver vist...ved jo ikke hvordan du gør ...har kun set en login side :o)
PS. så får du også lov lige at komme med en kommentar hvad du syntes om den. Men er ikke færdig endnu, er i fuld gang med at kæle lidt for detaljerne og få butikken til at fungere..
ok har luret Jamen afhængig af hvornår den skal være færdig så er du jo rimelig godt med Det eneste direkte dårlige jeg synes er til venstre hvor produkter skal stå Det er ikke godt der kommer en scroll både horisontalt og vertikalt..det ødelægger designet Men det kan jo nåes at rettes :o) Virker i øvrig so far lige godt i IE og firefox :o)
Tak. :-) Rart at høre andres mening om det man laver..
Det med scroll var påtænkt hvis man havde en meget lille skærm. Tak for tippet det tager jeg prositvt til mig og får kigget på. :-)
Fortsat go' aften...
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.