26. juli 2005 - 14:23Der er
54 kommentarer og 1 løsning
Admin menu der er ikke vil
Hejsa Får følgende fejl.... ------------------------------------------------------------ Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'UserID='.
/fuglegaarden/default.asp, line 100 ------------------------------------------------------------ Siden Default.asp ------------------------------------------------------------ <%
Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\web\localuser\pivskid.dk\database\fuglegaarden.mdb"
set rs = Server.CreateObject("ADODB.Recordset") id = session("UserID") rs.Open "SELECT * FROM Users WHERE UserID=" & id, myConn, 1, 3 %> <% if rs("rank") = "admin" then %> <IMG border=0 height=9 src="images/menupil.gif" width=9> <A class=detail href="admin/login.asp" target="main">Login</a><BR> <% end if %> ------------------------------------------------------------ LINIE 100 ------------------------------------------------------------ rs.Open "SELECT * FROM Users WHERE UserID=" & id, myConn, 1, 3
Jeg vil genrelt fraråde brug af Request alene, for den søger så både i querystring, form, session, cookie, servervars, osv osv i en given rækkefølge og returnerer første forekomst Så for det første er det spild af søgning, hvis man ved det er en session og for det andet risikerer man at man får problemer hvis man har samme navn i en form og en session
set rs = Server.CreateObject("ADODB.Recordset") id = session("UserID") response.write "SELECT * FROM Users WHERE UserID=" & id rs.Open "SELECT * FROM Users WHERE UserID=" & id, myConn, 1, 3
Synes godt om
Slettet bruger
26. juli 2005 - 14:36#13
SELECT * FROM Users WHERE UserID= Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'UserID='.
Der står et tal i din tabel i din database ja Der står ikke noget i din session Derfor når du laver denne id = session("UserID") så bliver id = "" <-- ingenting Hvor sætter du din session? det må være der den glipper og den ikke bliver sat
yes ok Men fakta er at din Session("UserID") åbenbart er tom, ellers ville id ikke være tom og så ville din sql virke Så på en og anden side sætter du din Session("UserID") hvor det går galt :o)
Synes godt om
Slettet bruger
26. juli 2005 - 14:49#24
hmmm kan det være login siden ? men det skulle jo helst ikke passe, man skulle jo gerne kunne se menuen alligevel, selvom man ikke er logget ind....
Hvis det er meningen din Session("UserID") skal indeholde brugerens id fra databasen Så har du eller bør du et eller andet sted have noget ala Session("UserID") = rs("Id") og der går det så nok galt af en og anden grund
Synes godt om
Slettet bruger
26. juli 2005 - 14:55#26
<% if session("username") = "" then response.redirect("login.asp") end if %>
eller mener du måske i virkeligheden Session("username") når du skriver Session("UserID") ??
Synes godt om
Slettet bruger
26. juli 2005 - 14:58#30
Det tror jeg sgu ikke *GG*
Synes godt om
Slettet bruger
26. juli 2005 - 14:59#31
<% ' 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 Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\web\localuser\pivskid.dk\database\fuglegaarden.mdb"
' Opbygning af SQL streng strSQL = "SELECT UserID FROM users"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") 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("UserID") = intUID Response.Redirect("admin.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 %> <html> <head> <title>Login script</title> <script> function resize() { if (parent.document.all.iframe) parent.document.all.iframe.style.height = document.body.scrollHeight; } </script> </head> <body style="background-color:transparent;"> <form method="POST" action="login.asp" target="_blank"> <b><font face="Verdana" size="1">Administrations Login<%=strErr%> </font></b> <table border="0"> <tr> <td width="50%"><font face="Verdana" size="1">Brugernavn:</font></td> <td width="50%"><font size="1" face="Verdana"><input type="text" name="Brugernavn" size="20"> </font> </td> </tr> <tr> <td width="50%"><font face="Verdana" size="1">Adgangskode:</font></td> <td width="50%"><font size="1" face="Verdana"><input type="password" name="Adgangskode" size="20"> </font> </td> </tr> </table> <p><font size="1" face="Verdana"><input type="submit" value="Login" name="Action"></font></p> </form> </body></html>
Synes godt om
Slettet bruger
26. juli 2005 - 14:59#32
Det er så login siden *GG*
Synes godt om
Slettet bruger
26. juli 2005 - 15:01#33
Damn det er forvirrende
Synes godt om
Slettet bruger
26. juli 2005 - 15:05#34
og det hele bare for at lave en admin menu i samme område, som den normale menu
ok det er login siden, og det ser ud til du sætter den rigtig nok der og du viderestiller så til admin.asp Men din fejl kommer på siden default.asp Hvis du kun sætter Session("UserID") når en bruger har logget ind, men alle kan gå ind på din default.asp uden at logge ind, så er det jo klart
Synes godt om
Slettet bruger
26. juli 2005 - 15:08#36
ja den er sådan lidt kringlet, vil gerne ha admin menu til at ligge der hvor den anden menu ligger, men som skrevet skal man være logget ind, for at kunne se den "ekstra menu del"
Af det du har postet oprindeligt i spørgsmålet så ligner det at du gør følgende 1) Du tjekker på sessionen brugerens id 2) Du finder brugeren i databasen 3) Hvis brugeren er "admin" så viser du en login knap Det virker lidt spøjst, for så var han jo allerede logget ind, eller ?
Synes godt om
Slettet bruger
26. juli 2005 - 15:10#38
jo jo det var såmænd kun lige en hurtig kopi af den anden login.... rent og skær bare som et forsøg
men man skal ikke være logget ind for at se den normale menu? For så skal du jo bare lade være med at tjekke om man er admin og nøjes med at lave en login funktion. Når man så er logget ind så viser du menuen ved at tjekke på om Session("UserID") er tom eller ej Eller du kunne lave en Session("admin") som fortæller om det er en admin der er logget ind eller en normal bruger
Synes godt om
Slettet bruger
26. juli 2005 - 15:12#40
netop, den normale menu skal man ikke være logget ind for at kunne se.... Men admin menuen skal være låst, da den jo kun skal bruges til at redigere indholdet på siderne
Du skal bare holde dig for øje at du ikke tjekker på noget som er tomt Hvis session("UserID") først sættes når man har logget ind Så er det jo klart at du på din default.asp ikke kan finde den som er logget ind,
Hvis jeg var dig så ville jeg på min default.asp have en ganske normal login knap som fører til din login.asp side - slut færdig Der hvor du genrerer menuen kan du så tjekke på rettighederne
ok så starter jeg med at svare på dit spørgsmål som originalt ;o) Du skrev: --- ------------------------------------------------------------ Siden Default.asp ------------------------------------------------------------ <%
Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\web\localuser\pivskid.dk\database\fuglegaarden.mdb"
set rs = Server.CreateObject("ADODB.Recordset") id = session("UserID") rs.Open "SELECT * FROM Users WHERE UserID=" & id, myConn, 1, 3 %> <% if rs("rank") = "admin" then %> <IMG border=0 height=9 src="images/menupil.gif" width=9> <A class=detail href="admin/login.asp" target="main">Login</a><BR> <% end if %> ---
På din default.asp er brugeren ikke logget ind Derfor vil din Session("UserID") være tom Derfor vil din select statement fejle
Synes godt om
Slettet bruger
26. juli 2005 - 15:18#45
okai og for at løse dette ?
Synes godt om
Slettet bruger
26. juli 2005 - 15:19#46
kan jeg i princippet ikke lave den login med et login i stil med default.asp?id=1 eller sådan
jamen det kommer jo an på ti tusinde ting, du har bla selv skrevet 15:10:40 at det bare var et forsøg Jeg ville mene at man normalt ville logge ind før man foretager sig noget Så jeg ville lave ----- <%
Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\web\localuser\pivskid.dk\database\fuglegaarden.mdb"
set rs = Server.CreateObject("ADODB.Recordset") id = session("UserID") rs.Open "SELECT * FROM Users WHERE UserID=" & id, myConn, 1, 3 %> <% if rs("rank") = "admin" then %> <IMG border=0 height=9 src="images/menupil.gif" width=9> <A class=detail href="admin/login.asp" target="main">Login</a><BR> <% end if %> ----- om til ----- <IMG border=0 height=9 src="images/menupil.gif" width=9> <A class=detail href="admin/login.asp" target="main">Login</a><BR> ----- For så kan man logge ind
Ellers så forstår jeg intet af hvorfor du gør som du gør desværre Den orginale fejl er helt klar, og ikke til at tage fejl af Men hvorfor du tjekker på sessionen før den er sat, det kan du jo kun selv vide :o)
jeg bliver nød til at smutte lidt, skal handle og såen, måske hvis de andre ikke har opgivet kan hjælpe dig videre. Det er bare svært at hjælpe dig med et helt menu system Vil gerne give dig stikord til hvordan man kan gøre, men synes lidt vi måske taler forbi hinanden, desværre
har valgt at lade folk login og derinde ligger menu istedet for :) Det var sådan set den løsning, som jeg har fundet frem til... Sys ikke du er online på MSN overhovedet eller er det bare mig hehe vtm_pivskid@hotmail.com min adresse
hehe jeg er ikke så vildt meget online på msn nej, det må jeg erkende :o)
Synes godt om
Slettet bruger
18. april 2007 - 14:44#55
har valgt at lade folk login og derinde ligger menu istedet for :) Det var sådan set den løsning, som jeg har fundet frem til
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.