Avatar billede Slettet bruger
26. juli 2005 - 14:23 Der 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>&nbsp;<A class=detail href="admin/login.asp" target="main">Login</a><BR>&nbsp;
<% end if %>
------------------------------------------------------------
LINIE 100
------------------------------------------------------------
rs.Open "SELECT * FROM Users WHERE UserID=" & id, myConn, 1, 3
Avatar billede jps6kb Novice
26. juli 2005 - 14:25 #1
Prøv med

UserID="& Request("UserID") &"", myConn,1,3
Avatar billede jokkejensen Novice
26. juli 2005 - 14:25 #2
id er ukendt... prøv at response.write den sql sætning...
Avatar billede busschou Praktikant
26. juli 2005 - 14:27 #3
og hvis id er ukendt så er session("UserID") ukendt :o)
Avatar billede Slettet bruger
26. juli 2005 - 14:27 #4
det virkede ikke :(
Avatar billede goose Nybegynder
26. juli 2005 - 14:28 #5
Prøv lige og ret:
id = session("UserID")

til:
id = cint(session("UserID"))

/Goose
Avatar billede busschou Praktikant
26. juli 2005 - 14:29 #6
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

men det var bare en side stikker fra mig ;o)
Avatar billede Slettet bruger
26. juli 2005 - 14:29 #7
hmmm virker stadigvæk ikke
Avatar billede jokkejensen Novice
26. juli 2005 - 14:30 #8
id er af typen integer i db ?

udskriv lige den sql sætning, og skriv hvad der står :)
Avatar billede busschou Praktikant
26. juli 2005 - 14:30 #9
skriv din session("UserId") ud, er du sikker på den ikkke er tom
Avatar billede Slettet bruger
26. juli 2005 - 14:30 #10
UserID hedder min id i dben
Avatar billede Slettet bruger
26. juli 2005 - 14:32 #11
er lidt usikker på hvor den skal stå henne response.write
Avatar billede busschou Praktikant
26. juli 2005 - 14:34 #12
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
Avatar billede 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='.

/fuglegaarden/default.asp, line 101
Avatar billede Slettet bruger
26. juli 2005 - 14:36 #14
ved at sætte din linie ind busschou
Avatar billede busschou Praktikant
26. juli 2005 - 14:36 #15
Så der har du den
Det er fordi din Session("UserID") er tom
Avatar billede Slettet bruger
26. juli 2005 - 14:39 #16
Der står et tal
Avatar billede Slettet bruger
26. juli 2005 - 14:39 #17
Det er min autonummering
Avatar billede Slettet bruger
26. juli 2005 - 14:41 #18
hvordan løser jeg så det ?
Avatar billede busschou Praktikant
26. juli 2005 - 14:41 #19
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
Avatar billede Slettet bruger
26. juli 2005 - 14:43 #20
bruger den til at udvide min menu på denne side www.pivskid.dk/fuglegaarden
Avatar billede Slettet bruger
26. juli 2005 - 14:44 #21
så er det menningen at når man logger ind, som admin, vil der komme en menu del mere frem, hvorfra alt kan styres
Avatar billede Slettet bruger
26. juli 2005 - 14:46 #22
Det er lige for at gøre det lidt nemmere at forstå
Avatar billede busschou Praktikant
26. juli 2005 - 14:47 #23
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)
Avatar billede 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....
Avatar billede busschou Praktikant
26. juli 2005 - 14:53 #25
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
Avatar billede Slettet bruger
26. juli 2005 - 14:55 #26
<%
if session("username") = "" then
response.redirect("login.asp")
end if
%>
Avatar billede Slettet bruger
26. juli 2005 - 14:55 #27
den bruger jeg til at spærrer siderne af med
Avatar billede busschou Praktikant
26. juli 2005 - 14:57 #28
hæhæ
Det er meget godt alt sammen
Det er der hvor du har
---
Session("UserID")
---
som er interessant
Men måske har du slet ikke sat den?
Avatar billede busschou Praktikant
26. juli 2005 - 14:58 #29
eller mener du måske i virkeligheden Session("username") når du skriver Session("UserID") ??
Avatar billede Slettet bruger
26. juli 2005 - 14:58 #30
Det tror jeg sgu ikke *GG*
Avatar billede 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>
Avatar billede Slettet bruger
26. juli 2005 - 14:59 #32
Det er så login siden *GG*
Avatar billede Slettet bruger
26. juli 2005 - 15:01 #33
Damn det er forvirrende
Avatar billede 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
Avatar billede busschou Praktikant
26. juli 2005 - 15:05 #35
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
Avatar billede 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"
Avatar billede busschou Praktikant
26. juli 2005 - 15:09 #37
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 ?
Avatar billede 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
Avatar billede busschou Praktikant
26. juli 2005 - 15:10 #39
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
Avatar billede 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
Avatar billede busschou Praktikant
26. juli 2005 - 15:12 #41
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,
Avatar billede busschou Praktikant
26. juli 2005 - 15:13 #42
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
Avatar billede Slettet bruger
26. juli 2005 - 15:13 #43
hmmmm.... tror jeg tabte snoren
Avatar billede busschou Praktikant
26. juli 2005 - 15:15 #44
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>&nbsp;<A class=detail href="admin/login.asp" target="main">Login</a><BR>&nbsp;
<% 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
Avatar billede Slettet bruger
26. juli 2005 - 15:18 #45
okai og for at løse dette ?
Avatar billede 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
Avatar billede busschou Praktikant
26. juli 2005 - 15:20 #47
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>&nbsp;<A class=detail href="admin/login.asp" target="main">Login</a><BR>&nbsp;
<% end if %>
-----
om til
-----
<IMG border=0 height=9 src="images/menupil.gif" width=9>&nbsp;<A class=detail href="admin/login.asp" target="main">Login</a><BR>&nbsp;
-----
For så kan man logge ind
Avatar billede busschou Praktikant
26. juli 2005 - 15:21 #48
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)
Avatar billede busschou Praktikant
26. juli 2005 - 15:23 #49
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
Avatar billede Slettet bruger
26. juli 2005 - 15:24 #50
okai kedeligt nok
Avatar billede Slettet bruger
26. juli 2005 - 15:25 #51
prøver lige helt forfra
Avatar billede busschou Praktikant
05. august 2005 - 17:19 #52
hey, kommet videre? :o)
Avatar billede Slettet bruger
05. august 2005 - 20:06 #53
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
Avatar billede busschou Praktikant
06. august 2005 - 01:59 #54
hehe jeg er ikke så vildt meget online på msn nej, det må jeg erkende :o)
Avatar billede 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
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