Avatar billede drockles Nybegynder
24. januar 2006 - 09:07 Der er 22 kommentarer og
1 løsning

fejl i min checklogin.asp

hej eksperter

jeg kan ikke se hvad det er jeg skal rette... altså hvorfor jeg får fejlen
jeg har scriptet fra asp.dk

her er koden for checklogin.asp



<%
' Her henter jeg dologin data værdien fra formen på default.asp siden.
' Hvis denne værdi ikke er TRUE, så udføres scriptet ikke, og der
' redirectes til default.asp siden.

strdologin = request.form("dologin")
if strdologin = "TRUE" then

' Hvis dologin er TRUE så henter jeg de 2 andre værdier. Nemlig det indtastede brugernavn og password.
strbrugernavn = request.form("brugernavn")
strPassword = request.form("password")


' Der er ikke indtastet brugernavn, hvis strbrugernavn er = "".
' Jeg sætter nu bare for en sikkerhedsskyld strbrugernavn og strpassword til intet. Herefter redirecter jeg
' til default.asp siden.
if (strbrugernavn="") then
  strbrugernavn = ""
  strpassword = ""
  strdologin = ""
  Response.Redirect "login.asp"


' Hvis strbrugernavn ikke er tom, søger vi vores MySQL database igennem. Vi vil gerne have passwordet
' der hvor tabellen brugernavn er = strbrugernavn. Altså det brugernavn der blev indtastet på default.asp siden.

else
' Jeg opretter her forbindelsen til MySQL databasen :
' Husk at rette brugernavn, password og databasenavn til.

DB_FORBINDSTRENG = "driver=MySQL;server=localhost;uid=brugernavn;pwd=password;database=database" '## MySQL w/ MyODBC v2.50
strConn = DB_FORBINDSTRENG
set conn=server.createobject("adodb.connection")
conn.Open strConn

conn.Open "SELECT password FROM andreas WHERE pass = '" & strbrugernavn & "'",strConn


' Vi har nu hentet password ud fra databasen, som passer til det brugernavn vi indtastede på default.asp siden.
' Nu skal vi tjekke om det password passer med det som brugeren indtastede på default.asp siden. Det password
' brugeren indtastede har vi jo hentet ud i strpassword tidligere i dette script. Vi tjekker om de passer sammen, hvis
' de gør det, så sætter vi session "access" til at være "TRUE". Herefter guider vi brugeren over på den egentlig hjemmeside.
' I dette eksempel har jeg kaldt den for hovedside.asp.
' Det som man skal huske er så på alle sine sider at tjekker for om session "access" er sat til TRUE. Hvis den ikke er det,
' skal man guide brugeren over på default.asp siden, så brugeren kan logge ind.
' Det gøres ved i toppen af alle sine asp filer, at tilføje følgende kode :
' if session("access") = "TRUE" then
' Herefter kommer hele ens HTML eller ASP kode. Altså selve filen. I bunden af ens side indsætter man følgende kode :
' else
' response.redirect "login.asp"

if conn("password") = strpassword then
session("access") = "TRUE"

' Jeg lukker nu database forbindelsen igen, sætter session access til TRUE og guider brugeren over
' til den rigtige hjemmeside. Jeg sætter også strbrugernavn og strpassword til intet, da vi ikke skal bruge
' disse variabler mere. Vi har jo sat session("access") til TRUE.
conn.close()
set conn = nothing
strbrugernavn = ""
strpassword = ""
strdologin = ""
resonse.redirect "rediger.php"

else
' Jeg sætter strpassword samt strbrugernavn til intet, hvis ikke password passer med det som brugeren indtastede.
' Herefter redirecter jeg igen til default.asp, så brugeren kan prøve en gang til.
strpassword = ""
strbrugernavn = ""
response.redirect "login.asp"
end if
end if

else
response.redirect "login.asp"
end if
%>
Avatar billede drockles Nybegynder
24. januar 2006 - 09:08 #1
og fejlmeddelelsen:

Technical Information (for support personnel)

Error Type:
ADODB.Connection.1 (0x800A0E79)
Invalid operation on open object
/andreas/checklogin.asp, line 47


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50215; .NET CLR 1.1.4322)

Page:
POST 54 bytes to /andreas/checklogin.asp

POST Data:
dologin=TRUE&brugernavn=superchang&password=superchang

Time:
Tuesday, January 24, 2006, 9:08:04 AM
Avatar billede drockles Nybegynder
24. januar 2006 - 09:25 #2
det er altså heromkring den er gal


DB_FORBINDSTRENG = "driver=MySQL;server=localhost;uid=brugernavn;pwd=password;database=database" '## MySQL w/ MyODBC v2.50
strConn = DB_FORBINDSTRENG
set conn=server.createobject("adodb.connection")
conn.Open strConn

//linie 47
conn.Open "SELECT password FROM andreas WHERE pass = '" & strbrugernavn & "'",strConn
Avatar billede goose Nybegynder
24. januar 2006 - 09:57 #3
Har du rettet uid,pwd,database til så det passer med din egen database?

Er du sikker på, at server skal være localhost?

Hvor er din hjemmeside hosted?

/Goose
Avatar billede drockles Nybegynder
24. januar 2006 - 10:00 #4
jeps
Avatar billede goose Nybegynder
24. januar 2006 - 10:02 #5
hvor er din side hosted?

/Goose
Avatar billede drockles Nybegynder
24. januar 2006 - 10:06 #6
b-one
Avatar billede fennec Nybegynder
24. januar 2006 - 10:10 #7
Det er ikke conn der skal bruges til at selecte med (er jo en adodb.connection)

Det skal være:
set conn=server.createobject("adodb.connection")
conn.Open strConn
set rs = conn.execute("SELECT password FROM andreas WHERE pass = '" & strbrugernavn & "'")

også skal du have ændret alle conn("xxx") til rs("xxx")
Avatar billede goose Nybegynder
24. januar 2006 - 10:11 #8
Så ved jeg det ikke, men du kan jop prøve at bruge den connectionsreng de selv oplyser på deres supportsider: https://www.b-one.net/static/support-faq.do?category=asp&number=5

/Goose
Avatar billede drockles Nybegynder
24. januar 2006 - 10:11 #9
kan jeg få dig til at rette det fennec? jeg er ikke 100% sikker på hvilke der skal rettes
Avatar billede fennec Nybegynder
24. januar 2006 - 10:25 #10
Det er ikke så meget der skal ændres. Faktisk kun 2 linjer.

conn.Open "SELECT password FROM andreas WHERE pass = '" & strbrugernavn & "'",strConn
Skal ændres til:
set rs = conn.execute("SELECT password FROM andreas WHERE pass = '" & strbrugernavn & "'")

og

if conn("password") = strpassword then
skal ændres til:
if rs("password") = strpassword then
Avatar billede drockles Nybegynder
24. januar 2006 - 10:26 #11
fino. jeg prøver
Avatar billede drockles Nybegynder
24. januar 2006 - 10:43 #12
jeg får endnu en fejl... men den handler vist om at rækken i tabellen ikke hedder password, men pass

jeg er ikke særlig øvert i asp, hvilke skal rettes? jeg prøvede med frontpages 'erstat alle' funktion, men det kom der ikke noget godt ud af

her er fejlmeddelelsen:

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1054 [TCX][MyODBC]Unknown column 'password' in 'field list'
/andreas/checklogin.asp, line 47
Avatar billede drockles Nybegynder
24. januar 2006 - 10:46 #13
<%

strdologin = request.form("dologin")
if strdologin = "TRUE" then

strbrugernavn = request.form("brugernavn")
strPassword = request.form("password")

if (strbrugernavn="") then
  strbrugernavn = ""
  strpassword = ""
  strdologin = ""
  Response.Redirect "login.asp"

else
' Jeg opretter her forbindelsen til MySQL databasen :
' Husk at rette brugernavn, password og databasenavn til.

DB_FORBINDSTRENG = "driver=MySQL;server=localhost;uid=andreasbrun_dk;pwd=superanette;database=andreasbrun_dk" '## MySQL w/ MyODBC v2.50
strConn = DB_FORBINDSTRENG
set conn=server.createobject("adodb.connection")
conn.Open strConn

set rs = conn.execute("SELECT password FROM andreas WHERE pass = '" & strbrugernavn & "'")

if rs("password") = strpassword then
session("access") = "TRUE"

conn.close()
set conn = nothing
strbrugernavn = ""
strpassword = ""
strdologin = ""
resonse.redirect "rediger.php"

else
strpassword = ""
strbrugernavn = ""
response.redirect "login.asp"
end if
end if

else
response.redirect "login.asp"
end if
%>
Avatar billede fennec Nybegynder
24. januar 2006 - 10:51 #14
if rs("password") = strpassword then
skal være
if rs("pass") = strpassword then
Avatar billede drockles Nybegynder
24. januar 2006 - 11:03 #15
nej den er stadig gal.... hva pokker

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1054 [TCX][MyODBC]Unknown column 'password' in 'field list'
Avatar billede fennec Nybegynder
24. januar 2006 - 11:14 #16
Har du mere kode på den side end vist her (problemet kan ligge der)?
Får du ikke et linejenr hvor fejlen opstår?
Har du evt et link så vi kan se problemet?
Prøv at lave en søgning igennem siden efter "password". Alle de steder hvor det forkommer i et recordset eller i en sql sætning, skal det udskiftes med "pass".
Avatar billede drockles Nybegynder
24. januar 2006 - 11:19 #17
Avatar billede drockles Nybegynder
24. januar 2006 - 11:20 #18
login med superchang - superchang
Avatar billede morhan Novice
24. januar 2006 - 11:21 #19
øjnene er dem man først bliver blind på? hvis du ikke har en kolonne ved navn password

set rs = conn.execute("SELECT password FROM andreas WHERE pass = '" & strbrugernavn & "'")

:)
Avatar billede drockles Nybegynder
24. januar 2006 - 11:23 #20
det har jeg nemlig ikke.. men den hedder pass... men så spørger jeg hvad der skal ændres i koden for at det passer
Avatar billede morhan Novice
24. januar 2006 - 11:30 #21
'SELECT password' skal være 'SELECT pass'

Din betingelse ser forkert ud. Du sammenligner password med brugernavn.  Hvis din kolonne med brugernavn hedder user, skal det være

set rs = conn.execute("SELECT pass FROM andreas WHERE [user] = '" & strbrugernavn & "'")
Avatar billede drockles Nybegynder
24. januar 2006 - 11:40 #22
så får jeg denne...
Error Type:
ADODB.Recordset.1 (0x80020009)
Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record.
/andreas/checklogin.asp, line 62
Avatar billede drockles Nybegynder
24. januar 2006 - 15:47 #23
jeg lukker. tak for forsøgene drenge
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