/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hjælp til login søges
Fra : Heidi


Dato : 28-02-02 13:20

Hej,

Jeg har med hjælp fra toturial'en på HTML.dk og denne
nyhedsgruppe fundet frem til følgende kode til et login system:

<html>
<html>
<title>tid og dato</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath ("KDB.mdb")
Conn.Open DSN
strSQL = "Select * from KDB where Medlemsnummer = " &
Request.Form("login") & ""
set rs = Conn.Execute(strSQL)
If rs.eof = False AND rs("BBV Kode") = Request.form("password")
then

Session("login") = "JA"
Session.Timeout = 30
Response.Write "<h1>Du er nu logget korrekt ind</h1>"
Response.Write "<p><a href='dokument.asp'>Link til beskyttet
fil</a></p>"

Else

Session("login") = "NEJ"
Session.Timeout = 30
Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
Response.Write "<p><a href='dokument.asp'>Link til beskyttet
fil</a></p>"

End If
Conn.Close: set conn = Nothing

%>
</body>
</html>

men det giver fejlmeldningen:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl,
fordi der mangler en operator. i forespørgselsudtrykket
"Medlemsnummer =".
/login.asp, line 12


Men der skal jo ikke være nogen operator?? Hvad er der galt??

KH Heidi


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Lars Hoffmann (28-02-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 28-02-02 13:30

Heidi <Studiner2002@yahoo.dk> escribió en el mensaje de noticias
a5l79l$m1m$1@sunsite.dk...


> strSQL = "Select * from KDB where Medlemsnummer = " &
> Request.Form("login") & ""

Dit problem er at Request.form("login") indeholder en tom streng. Har du
sikret dig at kalde tekstfeltet for "login" ?

Hvis du er i tvivl saa send sovsekoden til din formular, her til
gruppen.
Med venlig hilsen
Lars Hoffmann



Heidi (28-02-2002)
Kommentar
Fra : Heidi


Dato : 28-02-02 13:41

Hvad skal der så stå der hvor der nu er en tom streng?

Sourcekoden for login'en er:

<head>
   <title> BB brugergrænseflade 1 </title>
</head>   

<body><p align=left><a href=http://www.blockbuster.dk>
   <img src="overlogo.gif" border="0"></a>
   <br>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("KDB.mdb")
Conn.Open DSN
%>
   <p align=left><a href=http://www.blockbuster.dk>
   <img src="nedadlogo.gif" width="125" height="200" alt="billede 1"
style="float: left" border="0">
   
</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   <h1><p align=center><font face="verdana" size="6"><FONT COLOR="navy">
    Reservation </font></font></p></h1>   
   
      
   <p align=center><form method="post" action="login.asp">
   <p align=center><font face="verdana"
size="3">Login:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp<input type="text"
name="login">
   <p align=center>Kode:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input
type="text" name="password"></font>
   <p align=center><input type="submit" value="Login">
   </form></p>

   <h4><FONT COLOR="silver"><p align=center>Din kode er den du bruger når du
lejer
   </p></font></h4>
   
      <p align=center><img src="kort.gif"></p>

<%
Conn.Close
Set Conn = Nothing
%>   

</body>

</html>

Jeg ved godt der står en masse der ikke har noget med login'en at gøre, men
tænkte du hellere må få det hele hvis det er her der er noget galt..

På forhånd tak Heidi..









Lars Hoffmann wrote in dk.edb.internet.webdesign.serverside.asp:
> Heidi <Studiner2002@yahoo.dk> escribió en el mensaje de noticias
> a5l79l$m1m$1@sunsite.dk...
>
>
> > strSQL = "Select * from KDB where Medlemsnummer = " &
> > Request.Form("login") & ""
>
> Dit problem er at Request.form("login") indeholder en tom streng. Har du
> sikret dig at kalde tekstfeltet for "login" ?
>
> Hvis du er i tvivl saa send sovsekoden til din formular, her til
> gruppen.
> Med venlig hilsen
> Lars Hoffmann
>
>


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (28-02-2002)
Kommentar
Fra : Jørn Andersen


Dato : 28-02-02 14:12

On Thu, 28 Feb 2002 12:40:57 +0000 (UTC), Heidi
<Studiner2002@yahoo.dk> wrote:

>Hvad skal der så stå der hvor der nu er en tom streng?
>
>Sourcekoden for login'en er:

Den ser OK ud - bortset fra at du ikke behøver at åbne forbindelse til
db'en - den bruges jo først på næste side.

<SNIP>
><%
>Set Conn = Server.CreateObject("ADODB.Connection")
>DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
>Server.MapPath("KDB.mdb")
>Conn.Open DSN

Væk med dem!

>   <p align=center>Kode:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input
>type="text" name="password"></font>

Husk at sætte type="password", når den skal "i drift"

<SNIP>
>Conn.Close
>Set Conn = Nothing
Væk med dem!


Jeg har afprøvet dit system (lidt tilrettet min egen db) - og det
virker OK.
Der var dog lige nogle linieskift for meget - men jeg går du fra, at
de er fra nyhedsgruppen. Check i hvert fald, at du ikke har linieskift
i strSQL.

Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

Heidi (28-02-2002)
Kommentar
Fra : Heidi


Dato : 28-02-02 14:36

Det virker ok hos dig??

Jeg får stadig fejlmeddelsen:

_______________________________________________________________
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi
der mangler en operator. i forespørgselsudtrykket "Medlemsnummer =".
/login.asp, line 13
_______________________________________________________________

Linie 13 er:

strSQL = "Select * from KDB where Medlemsnummer = " &
Request.Form("login") & ""

Men hvis det er fordi den er tom, hvad skal der så stå i den??
Kunne du godt få det til at køre på din DB selvom den var tom?

På forhånd tak..

Heidi


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (28-02-2002)
Kommentar
Fra : Jørn Andersen


Dato : 28-02-02 15:06

On Thu, 28 Feb 2002 13:36:09 +0000 (UTC), Heidi
<studiner2002@yahoo.dk> wrote:

>Det virker ok hos dig??

Jeps :)

>Jeg får stadig fejlmeddelsen:
>
>_______________________________________________________________
>Fejltype:
>Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
>[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi
>der mangler en operator. i forespørgselsudtrykket "Medlemsnummer =".
>/login.asp, line 13
>_______________________________________________________________
>
>Linie 13 er:
>
>strSQL = "Select * from KDB where Medlemsnummer = " &
>Request.Form("login") & ""

Er disse to linier på samme linie i dit script - det skal de være -
eller også skal du skrive:

strSQL = "Select * from KDB where Medlemsnummer = " & _
Request.Form("login") & ""

- underscore (_) er en "linieforlænger" ...


>Men hvis det er fordi den er tom, hvad skal der så stå i den??

Den er ikke tom, hvis du ellers har skrevet noget i formularen.

Men som jeg nævnte, ville det være smart at sætte en form for
validering ind fx:

Dim strLogin, strPassword, intLogin
strLogin = Request.form("login")
strPassword = Request.form("password")

If IsEmpty(strLogin) Or Trim(strLogin) = "" Then
   Response.Redirect("inlog.asp")
End If

If IsEmpty(strPassword) Or Trim(strPassword) = "" Then
   Response.Redirect("inlog.asp")
End If

intLogin = CInt(strLogin)

Ovenstående indsættes, inden du starter på at åbne db osv. (jeg har
kaldt din første side for "inlog.asp" - ret selv.)
(Nu er det selvfølgelig meget uhøfligt bare at Redirect'e, men det kan
du selv pudse af ...)

SQL'en kan så også rettes til:
strSQL = "Select * from KDB where Medlemsnummer = " & _
intLogin & ""

Denne validering er dog ikke nødvendig, før du får "hul igennem" dit
første problem.

Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

heidi (28-02-2002)
Kommentar
Fra : heidi


Dato : 28-02-02 15:39

jeg har tjekket det hele og gjort alt hvad du har foreslået, men det
virker stadig ikke.

Hvis det virker hos dig, kan der vel ikke være noget i vejen med koden
vel?

Har du nogen ide om hvad der så kan være i vejen?

Jeg bruger windows XP Pro med en IIS, Access 97 og explorer..

Håber du kan hjælpe mig..


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (28-02-2002)
Kommentar
Fra : Jørn Andersen


Dato : 28-02-02 15:58

On Thu, 28 Feb 2002 14:38:50 +0000 (UTC), heidi
<studiner2002@yahoo.dk> wrote:

>jeg har tjekket det hele og gjort alt hvad du har foreslået, men det
>virker stadig ikke.

Dvs. du får samme fejlmeddelelse?

Du har ikke svaret på, hvad den siger, når du udskriver strSQL:

Response.Write strSQL
Response.End

Hvis du fx har indtastet "1734" som medlemsnummer, skal strSQL se
således ud, når du udskriver:
Select * from KDB where Medlemsnummer = 1734

>Hvis det virker hos dig, kan der vel ikke være noget i vejen med koden
>vel?

Nu var jeg jo nødt til lige at rette et par ting for at får den til at
passe til min db, så det kan da godt være jeg har rettet fejlen :)

>Har du nogen ide om hvad der så kan være i vejen?
>
>Jeg bruger windows XP Pro med en IIS, Access 97 og explorer..

Nogenlunde ditto her.

Måske er Explorer kommet til at cache siden - prøv evt. at indsætte:
Response.Buffer = True
Response.Expires = 0
Response.Expiresabsolute = DateAdd("d", -2, Now())
øverst på login.asp
- og tving så MSIE til at genindlæse ved at holde Ctrl nede samtidig
med at du genindlæser siden - evt. blot Ctrl + F5


Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

Heidi (01-03-2002)
Kommentar
Fra : Heidi


Dato : 01-03-02 10:45

>
> Dvs. du får samme fejlmeddelelse?

Ja, samme fejl meddelse

> Du har ikke svaret på, hvad den siger, når du udskriver strSQL:
>
> Response.Write strSQL
> Response.End
>
> Hvis du fx har indtastet "1734" som medlemsnummer, skal strSQL se
> således ud, når du udskriver:
> Select * from KDB where Medlemsnummer = 1734

Den udskriver "Select * from KDB where Medlemsnummer = 1734 " som den
skal.. men den henter jo ikke noget input fra databasen, som det var
meningen at den skulle!!
Hvis jeg ikke skriver "1734", kommer fejlmeddelsen omkring at der er en
eller anden syntaksfejl efter "....Medlemsnummer = "




På forhånd tak :)
>
> Nu var jeg jo nødt til lige at rette et par ting for at får den til at
> passe til min db, så det kan da godt være jeg har rettet fejlen :)
>
> >Har du nogen ide om hvad der så kan være i vejen?
> >
> >Jeg bruger windows XP Pro med en IIS, Access 97 og explorer..
>
> Nogenlunde ditto her.
>
> Måske er Explorer kommet til at cache siden - prøv evt. at indsætte:
> Response.Buffer = True
> Response.Expires = 0
> Response.Expiresabsolute = DateAdd("d", -2, Now())
> øverst på login.asp
> - og tving så MSIE til at genindlæse ved at holde Ctrl nede samtidig
> med at du genindlæser siden - evt. blot Ctrl + F5
>
>
> Good luck,
> Jørn
>
> --
> Jørn Andersen,
> Brønshøj


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lars Hoffmann (01-03-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 01-03-02 11:04

Heidi <studiner2002@yahoo.dk> escribió en el mensaje de noticias
a5niil$5la$1@sunsite.dk...

> Den udskriver "Select * from KDB where Medlemsnummer = 1734 " som den
> skal.. men den henter jo ikke noget input fra databasen, som det var
> meningen at den skulle!!
> Hvis jeg ikke skriver "1734", kommer fejlmeddelsen omkring at der er
en
> eller anden syntaksfejl efter "....Medlemsnummer = "

Hvis du aabner database, hvilken type har Medlemsnummer, det er vel ikke
gemt som tekst?
Med venlig hilsen
Lars Hoffmann



Heidi (01-03-2002)
Kommentar
Fra : Heidi


Dato : 01-03-02 11:11

Lars Hoffmann wrote in dk.edb.internet.webdesign.serverside.asp:
> Heidi <studiner2002@yahoo.dk> escribió en el mensaje de noticias
> a5niil$5la$1@sunsite.dk...
>
> > Den udskriver "Select * from KDB where Medlemsnummer = 1734 " som den
> > skal.. men den henter jo ikke noget input fra databasen, som det var
> > meningen at den skulle!!
> > Hvis jeg ikke skriver "1734", kommer fejlmeddelsen omkring at der er
> en
> > eller anden syntaksfejl efter "....Medlemsnummer = "
>
> Hvis du aabner database, hvilken type har Medlemsnummer, det er vel ikke
> gemt som tekst?

Nej, det er gemt som tal(dobbelt reelt tal)!

Men tak for forsøget, jeg tror at der er gået nisser i maskinen!!?? :0)

> Med venlig hilsen
> Lars Hoffmann
>
>


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Heidi (01-03-2002)
Kommentar
Fra : Heidi


Dato : 01-03-02 12:04

Det virker nu!! Tusind tak for hjælpen allesammen

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lars Hoffmann (01-03-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 01-03-02 12:30

Heidi <Studiner2002@yahoo.dk> escribió en el mensaje de noticias
a5nn6p$jlg$1@sunsite.dk...
> Det virker nu!! Tusind tak for hjælpen allesammen

Kan du ikke fortaelle hvad der var galt saa vi andre ved hvad vi skal
goere naar vi staar med en lignende fejl?
Med venlig hilsen
Lars Hoffmann




Jørn Andersen (28-02-2002)
Kommentar
Fra : Jørn Andersen


Dato : 28-02-02 13:31

On Thu, 28 Feb 2002 12:20:05 +0000 (UTC), Heidi
<Studiner2002@yahoo.dk> wrote:

Hej Heidi,

<SNIP>
Har du prøvet at udskrive din SQL-streng?

>strSQL = "Select * from KDB where Medlemsnummer = " &
>Request.Form("login") & ""

Response.Write strSQL
Response.End

- så vil det nok vise sig, at Request.Form("login") er tom (mit gæt)

Under alle omstændigheder ville det nok være smart med lidt
validering. Hvis Request.Form("login") er tom eller ikke er et tal, er
der jo ingen grund til at kalde databasen op :)

<SNIP>
>Fejltype:
>Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
>[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl,
>fordi der mangler en operator. i forespørgselsudtrykket
>"Medlemsnummer =".
>/login.asp, line 12
>
>Men der skal jo ikke være nogen operator??

- Nej men der skal være "noget" efter " = " - nemlig det
medlemsnummer, du spørger på.



--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste