/ 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
ASP: Problem med kode til DB
Fra : Rasmus Nielsen


Dato : 16-01-04 00:09

Hejsa

Jeg har lavet en hjemmeside med en database forbindelse. Men
skidtet virker ikke. Her er min ASP kode:

<%
If Request("Action") = LoginButton Then

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/Users.mdb")
Conn.Open DSN

SQL = "SELECT * FROM Login WHERE Username = '" +
Request.Form("Username") + "'"
Set RS = Conn.Execute (SQL)

If (RS.EOF And RS.BOF) Then
Session (SiteID + "Authentication") = False
Response.Redirect
("login.asp?Error=Brugernavn+eksisterer+ikke.")
ElseIf RS("Password") <> Request("Password") Then
Session (SiteID + "Authentication") = False
Response.Redirect ("login.asp?Error=Ugyldig+adgangskode")
Else
Session (SiteID + "Username") = RS("Username")
Session (SiteID + "FirstName") = RS("FirstName")
Session (SiteID + "LastName") = RS("LastName")
      Session (SiteID + "Email") = RS("Email")
Session (SiteID + "Authentication") = True
Response.Redirect ("godkendt.asp")
End If
End If

Conn.Close
Set Conn = Nothing
%>

SiteID er en konstant jeg har erklæret i en include fil. Det har
virket før, men nu hvor jeg vil lukke DB forbindelsen, så brokker
den sig med følgende fejlbesked:

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'Conn'
/login.asp, line 39

Hvad kan der være galt?

Hilsen Rasmus


--
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

 
 
Falcon (16-01-2004)
Kommentar
Fra : Falcon


Dato : 16-01-04 01:45

<%
&gt; If Request("Action") = LoginButton Then
&gt;
&gt; Set Conn = Server.CreateObject("ADODB.Connection")
&gt; DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
&gt; DSN = DSN & "DBQ=" & Server.MapPath("db/Users.mdb")
&gt; Conn.Open DSN

Prøv flg.:

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("db/Users.mdb")

Conn.Open DSN


--
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

Jens Gyldenkærne Cla~ (16-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-01-04 10:26

Rasmus Nielsen skrev:

> If Request("Action") = LoginButton Then
>
> Set Conn = Server.CreateObject("ADODB.Connection")


Conn-objektet oprettes kun hvis din if-sætning er sand.

> Response.Redirect ("godkendt.asp")
> End If
> End If

- Her slutter den første If-sætning. Ovenfor denne linje har du med
sikkerhed et Conn-objekt. Nedenfor har du det kun når if-sætningen
har været sand.


> Conn.Close

Linjen her vil derfor fejle hvis Request("Action") ikke svarer til
LoginButton.


[flytttet citatblok]

> If (RS.EOF And RS.BOF) Then
> Session (SiteID + "Authentication") = False
> Response.Redirect

Når du laver response.redirect her får du ikke lukket dit postsæt -
det er ikke så godt (omend det ikke giver nogen direkte fejl).

Samme problem gælder for de to andre redirects i din if-sætning.



Du skal have Conn.Close/Set Conn = Nothing lagt ind i if-sætningen
- og så bør du vente med at redirecte til du har lukket
forbindelsen. Gem redirectsiden i en variabel som du sætter med din
tredelte if-sætning, og brug så variablen til at lave redirect til
sidst.


> Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
> Et objekt er obligatorisk: 'Conn'
> /login.asp, line 39

Helt generelt er det en god ide at oplyse hvilken linje der fejler
(hvor er linje 39 i dit kodeeksempel).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

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

Månedens bedste
Årets bedste
Sidste års bedste