Hej, håller på med en logg in sida men kan inte förstå vad som är fel. Här nedan följer koden där felet ska finnas Du får börja med att kolla vilken rad den smäller på! jag skulle nog helre vilja säga att odefinerat fel är Set Rs = Conn.Execute("SELECT * FROM losen WHERE email='" & FormatSQL( Request.Form("email")) & "' AND password='" & FormatSQL( Request.Form("password")) & "'") Har varit lite dålig på att följa upp mitt inlägg. Andra jobb har kommit ivägen. Felet är fortfarande inte löst, har ni några fler tips att komma med. Sitter och tittar lite på koden... Sitter och tittar lite på koden... Blir lite osäker, men jag tror det ska gå bra. är något av fälten i frågan NULL? Hej har du lust att förklara hur man gör en sådan check. Set Rs = Conn.Execute("SELECT * FROM losen WHERE email='" & FormatSQL( Request.Form("email")) & "' AND password='" & FormatSQL( Request.Form("password")) & "'") KAn det vara att den försöker köra koden på klienten. T.ex. glömt att aktivera scripting. Eller filen inte heter *.ASP? Är sessions aktiverat? Om man loggar in sig som "ny" användare fungerar alla sidor, däremot om man redan är medlem och loggar in sig så strular det. Jag antar darför att serverns är ok, skulle den inte vara det så skulle även regsitreringen av ny medlem krångla. blir något fält null? Har inte hunnit prova koden än, jag ska dock försöka hinna med det på onsdag förmiddag. Har nu provat koden enlig ovan. Har nu provat koden enlig ovan. vill fortfarande veta vilken rad felet uppstår på. Session("sfor") = Rs.Fields("for").Value "for" är ett upptaget ord i databasen! Jag märkte misstaget för några dagar sedan, for är redan utbytt mot fnamn. Tyvärr påverka det inte resultatet. Så problemet är fortfarande inte löst. Vad menar du med option explicit. Är det en odefenierad variabel så kan du ju prova att ta bort option explicit. Hej. Jak har inte lusläst alla inlägg. Now() är en vb-funkis, väl. Jeppe: har du lust att förklara lite mer? Som överskriften säger, "odefinierad variabel"odefinerad varibel session (fortfarande inte löst)
<code>
Set Rs = Conn.Execute("SELECT * FROM losen WHERE email='" & FormatSQL( Request.Form("email")) & "' AND password='" & FormatSQL( Request.Form("password")) & "'")
If Not Rs.Eof Then
Conn.Execute("UPDATE shCustomers SET lastLogin=NOW() WHERE id=" & Rs.Fields("id").Value)
Session("sfor") = Rs.Fields("for").Value
Session("sefter") = Rs.Fields("efter").Value
Session("sID") = Rs.Fields("id").Value
Response.Redirect "kassa.asp"
Response.End
</code>
felet odefinerad varibel sessionSv: odefinerad varibel session
Det saknas ingen End If ?Sv: odefinerad varibel session
ganska svårt att bli av med. med tanke på
att det är mera en server-bugg än fel på koden
för hade det tex fattas en End If så hade den klagat på detSv: odefinerad varibel session
If Not Rs.Eof Then
Conn.Execute("UPDATE shCustomers SET lastLogin=NOW() WHERE id=" & Rs.Fields("id").Value)
Session("sfor") = Rs.Fields("for").Value
Session("sefter") = Rs.Fields("efter").Value
Session("sID") = Rs.Fields("id").Value
Response.Redirect "kassa.asp"
Response.End
Vad händer om du istället skriver såhär:
<code>
Set Rs = Conn.Execute("SELECT * FROM losen WHERE email='" & FormatSQL( Request.Form("email")) & "' AND password='" & FormatSQL( Request.Form("password")) & "'")
If Not Rs.Eof Then
Conn.Execute("UPDATE shCustomers SET lastLogin=NOW() WHERE id=" & Rs.Fields("id").Value)
Session.Contents("sfor") = Rs("for")
Session.Contents("sefter") = Rs("efter")
Session.Contents("sID") = Rs("id")
Response.Redirect "kassa.asp"
Response.End
</code>
Kolla på innehållet ex: <%= Session("sfor") %> osv....
Du har inte en Option Explicit i headern??Sv: odefinerad varibel session
Det blev ingen ändring utan får fortfarande samma fel.
Så här är koden:<code>
Dim fname, lname
IF Request("HTTP_METHOD") = "POST" Then
IF Request.Form("email") <> "" Then
IF Request.Form("password")<>"" Then
Set Rs = Conn.Execute("SELECT * FROM shCustomers WHERE email='" & FormatSQL( Request.Form("email")) & "' AND password='" & FormatSQL( Request.Form("password")) & "'")
If Not Rs.Eof Then
Conn.Execute("UPDATE shCustomers SET lastLogin=NOW() WHERE id=" & Rs.Fields("id").Value)
Session.Contents("shCustomerFname") = Rs("fname")
Session.Contents("shCustomerLname") = Rs("lname")
Session.Contents("shCustomerID") = Rs("id")
Response.Redirect "kassa.asp"
Response.End
Else
errorString = "Felaktig epost-adress eller lösenord."
End If
Rs.Close
Set Rs = Nothing
Else
errorString = "Fyll i ditt lösenord."
End If
Else
errorString = "Fyll i din e-post adress."
End If
End If
%>
.
.
<FORM METHOD="POST" ACTION="logga_in.asp">
E-post adress:<br>
<input name="email" type="text" size="30" maxlength="255" CLASS="shItem" VALUE="<%=Request.Form("email")%>"><br>
Lösenord:<br>
<input name="password" type="password" size="30" maxlength="30" CLASS="shItem"><br>
<INPUT TYPE="Submit" Value="Logga in" CLASS="shItem">
</FORM>
.
.
</code>
Felmedelandet jag får:
Körningsfel i Microsoft VBScript fel '800a01f4'
Odefinierad variabel: 'Session'
/shop_iq/logga_in.asp, rad 18
rad 18 är följande sats:
Session.Contents("shCustomerFname") = Rs("fname") Sv: odefinerad varibel session
Sv: odefinerad varibel session (fortfarande inte löst)
Kan man ha både response.redirect & session?
Inte säker men...Sv: odefinerad varibel session (fortfarande inte löst)
Kan man ha både response.redirect & session?
Inte säker men...Sv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
gör en check med IsNull på varje fält från databasen.Sv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
If Not Rs.Eof Then
Conn.Execute("UPDATE shCustomers SET lastLogin=NOW() WHERE id=" & Rs.Fields("id").Value)
if isnull(rs("for")) Then
Response.write "For är tom och kan därför inte stoppas in i en session"
end if
if isnull(rs("efter")) Then
Response.write "Efter är tom och kan därför inte stoppas in i en session"
end if
if isnull(rs("id")) Then
Response.write "ID är tom och kan därför inte stoppas in i en session"
end if
Session("sfor") = Rs.Fields("for").Value
Session("sefter") = Rs.Fields("efter").Value
Session("sID") = Rs.Fields("id").Value
Response.Redirect "kassa.asp"
Response.EndSv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
Det går att sätta på/stänga av med script ELLER på serverns grundkonfiguaration!
Kolla!Sv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
vilken rad exakt klagar ASP på?Sv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
Inga fält är tomma. Har ni några fler tips att komma med?Sv: odefinerad varibel session (fortfarande inte löst)
Inga fält är tomma. Har ni några fler tips att komma med?Sv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
Felet uppstår på rad 18, vilket motsvarar koden ovan
Sv: odefinerad varibel session (fortfarande inte löst)
Byt ut det till fore eller strFor eller ngt klatschigt så skall du nog se att det ordnar sig!
P.s.
Sluta inte att dimma, ta med "option explicit" också.Sv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
Sv: odefinerad varibel session (fortfarande inte löst)
Conn.Execute("UPDATE shCustomers SET lastLogin=" & NOW() & " WHERE id=" & Rs.Fields("id").Value) Sv: odefinerad varibel session (fortfarande inte löst)
Angående Now funktionenär jag lite osäker. Någon som Vet hur det ligger till?
Ska självklart se om jag kan finna någon lösning. Återkommer när jag fått fram det.Sv: odefinerad varibel session (fortfarande inte löst)
Definierar variablar gör man med "Dim", man dimmar sina egna variablar. Tex. "Dim Conn, RecSet, Datum etc etc"
Sätter man "option explicit" högst upp på sidan så kommer scriptet att tala om om du glömt att dimma något, då så säger felsidan "odefinierad variabel". Tar du bort "Option explicit" så kommer du inte få något sådant felmeddelande ju. Men det är klart bättre om du dimmar alla dina variablar. Det snabbar upp ditt script en aning.
Lycka till!