Avatar billede bojohansen Nybegynder
20. april 2001 - 20:21 Der er 13 kommentarer og
1 løsning

Hvoffor response.redirecter denne ikke??

Set Conn = Server.CreateObject(\"ADODB.Connection\")
  Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\\home\\formordk\\db\\member.mdb\"
  Set RS = conn.Execute (\"SELECT MedlemsPassword From MedlemsInfo WHERE MedlemsIdNr =\'\" & YourId & \"\'\")
 
  If RS.EOF Then
  FejlYourIdNotInDb = FejlYourIdNotInDb + 1
  Else
  If RS(\"MedlemsPassword\") <> Password Then
  FejlForkertPassword = FejlForkertPassword + 1
  Else
  If RememberMe = \"\" Then
  FejlRememberMe = FejlRememberMe + 1
  End If



Når passwordet er forkert så viser den bare siden helt blank i stedet for at Redirecte.

Her er hele scriptet

<%@LANGUAGE=\"VBSCRIPT\"%>
<%
Response.Expires = 0
Response.AddHeader \"PRAGMA\", \"NO-CACHE\"
%>
<%
Dim YourId, Password, FejlYourId, Fejl, FejlPassword, FejlYourIdNotInDb, FejlForkertPassword, FejlRememberMe ,RememberMe
YourId = Request.Querystring(\"YourId\")
Password = Request.Querystring(\"Password\")
Fejl = (\"0\")
FejlYourId = (\"0\")
FejlPassword = (\"0\")
FejlYourIdNotInDb = (\"0\")
FejlForkertPassword = (\"0\")
FejlRememberMe = (\"0\")
RememberMe = Request.Querystring(\"RememberMe\")

%>

<%
If YourId = (\"\") Or Password = (\"\") Then
  Fejl = Fejl + 1
End If

  if instr(YourId ,\"\'\") Or _
  instr(YourId ,\"&\") Or _
  instr(YourId ,\",\") Or _
  instr(YourId ,\";\") Or _
  instr(YourId ,\"_\") Or _
  instr(YourId ,\"=\") Or _
  instr(YourId ,\" \") Or _
  instr(lcase(YourId) ,\"select \") Or _
  instr(lcase(YourId) ,\" where \") Or _
  instr(lcase(YourId) ,\" or \") Or _
  instr(lcase(YourId) ,\" by \") Or _
  instr(lcase(YourId) ,\" insert \") Or _
  instr(lcase(YourId) ,\" update \") Or _
  instr(lcase(YourId) ,\" and \") Then
  FejlYourId = FejlYourId + 1
  End If
 
  if instr(Password ,\"\'\") Or _
  instr(Password ,\"&\") Or _
  instr(Password ,\",\") Or _
  instr(Password ,\";\") Or _
  instr(Password ,\"_\") Or _
  instr(Password ,\"=\") Or _
  instr(Password ,\" \") Or _
  instr(lcase(Password) ,\"select \") Or _
  instr(lcase(Password) ,\" where \") Or _
  instr(lcase(Password) ,\" or \") Or _
  instr(lcase(Password) ,\" by \") Or _
  instr(lcase(Password) ,\" insert \") Or _
  instr(lcase(Password) ,\" update \") Or _
  instr(lcase(Password) ,\" and \") Then
  FejlPassword = FejlPassword + 1
  End If
 
  If Fejl > 0 Or FejlYourId > 0 Or FejlPassword > 0 Then
  Response.Redirect \"login.asp?FejlYourId=\" & FejlYourId & _
  \"&FejlPassword=\" & FejlPassword
  End If
 
  Set Conn = Server.CreateObject(\"ADODB.Connection\")
  Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\\home\\formordk\\db\\member.mdb\"
  Set RS = conn.Execute (\"SELECT MedlemsPassword From MedlemsInfo WHERE MedlemsIdNr =\'\" & YourId & \"\'\")
 
  If RS.EOF Then
  FejlYourIdNotInDb = FejlYourIdNotInDb + 1
  Else
  If RS(\"MedlemsPassword\") <> Password Then
  FejlForkertPassword = FejlForkertPassword + 1
  Else
  If RememberMe = \"\" Then
  FejlRememberMe = FejlRememberMe + 1
  End If
 
  If FejlYourIdNotInDb > 0 Or FejlForkertPassword > 0 Or FejlRememberMe > 0 Then
  Response.Redirect \"login.asp?FejlYourIdNotInDb=\" & FejlYourIdNotInDb & _
  \"&FejlForkertPassword=\" & FejlForkertPassword & _
  \"&FejlRememberMe=\" & FejlRememberMe
  Else
 
  Function MakePassword(intAntaltegn)
  For x = 1 To intAntalTegn
    Randomize
    intChooser = Int(Rnd * 2) + 1
    Select Case intChooser
    Case 1
      intWildChar = Int(Rnd * 57) + 65
      If intWildChar => 91 And intWildChar <= 96 Then
        intWildChar = intWildChar + 8
      End If
      strPassword = strPassword & Chr(intWildChar)
    Case Else
      intWildChar = Int(Rnd * 9) + 1
      strPassword = strPassword & intWildChar
    End Select
  Next
  MakePassword = strPassword
End Function
CookiesId1 = MakePassword(20)
\'for at undgå 2 mennesker ender med samme CookiesId sætter vi Id nummer ind foran
CookiesId = YourId & CookiesId1

If RememberMe = (\"1\") Then

  Set RS1 = conn.Execute (\"UPDATE MedlemsInfo SET CookiesId = \'\" & CookiesId & \"\' Where MedlemsIdNr = \'\" & YourId & \"\'\")

  Response.Cookies(\"Memberacces\")(\"CookiesId\") = \"\" & CookiesId & \"\"
  Response.Cookies(\"Memberacces\")(\"YourId\") = \"\" & YourId & \"\"
  \'Response.Cookies(\"Memberacces\").Expires = dateadd(\"h\",2,now()) 
  Response.Write \"enellerandenside.asp cookie = 1\"
  Else
  If RememberMe = (\"2\") Then
 
  Set RS2 = conn.Execute (\"UPDATE MedlemsInfo SET CookiesId = \'\" & CookiesId & \"\' Where MedlemsIdNr = \'\" & YourId & \"\'\")
 
  Response.Cookies(\"Memberacces\")(\"CookiesId\") = \"\" & CookiesId & \"\"
  Response.Cookies(\"Memberacces\")(\"YourId\") = \"\" & YourId & \"\"
  Response.Cookies(\"Memberacces\").Expires = Date+365
  Response.Write \"enellerandenside.asp cookie = 2\"
  End If
 
  End If
End If
End If
End If
%>
Avatar billede dope Nybegynder
20. april 2001 - 20:28 #1
Du mangler paranteser rundt om din response url:

response.redirect(\"fjksdfjsdhfjsdhfjks\")
Avatar billede bojohansen Nybegynder
20. april 2001 - 20:34 #2
Der skal ikke være nogle () om url\'en.
Har masser af disse response.redirect uden () som virker fint, og det er også kun hvis password er forkert.......... hvis der er ulovlige tegn redirectes der godt nok og det er uden ()
Avatar billede dope Nybegynder
20. april 2001 - 20:41 #3
Ok, så kan det være at alle dine værdier forbliver 0 og derfor svarer false til > 0? Men jeg er nok ikke haj nok til at kunne vejlede dig... Er der virkelig ikke andre sådan en højhellig fredag?
:-)
Avatar billede bojohansen Nybegynder
20. april 2001 - 20:44 #4
Det er helt ok :-))
Avatar billede bojohansen Nybegynder
20. april 2001 - 21:25 #5
Hmmmmmmmmmm det fatter jeg ikke :-(((

Når jeg udskriver både Password, RS(\"MedlemsPassword\") og FejlForkertPassword så er alle værdier rigtige nok til at den skulle redirecte!!!!!!!!!!!!!11 Men hvoffor gør den det så ikke.
Hvis alle andre har fejl er der inten prob??????????
Avatar billede erikjacobsen Ekspert
20. april 2001 - 21:27 #6
Når du skriver
    %>

    <%
Laver du én linie HTML - derefter kan du ikke længere lave en redirect.
Enten fjerner du de 3 linier, eller også laver du en
  response.buffer=true
oppe i toppen.

(Der kan også være noget andet galt...)
Avatar billede bojohansen Nybegynder
20. april 2001 - 23:54 #7
---> erikjacobsen
Det er på en Win 2000 server så Response.Buffer er default = True og det hjælper heller ikke at skrive det :-(

Tjaaaaaaaa jeg må nok hellere skrive det om så køre If If If  Else If If If End.........
Avatar billede bojohansen Nybegynder
20. april 2001 - 23:55 #8
Men det sjove er at hvis RememberMe = 1 så redirecter den godt nok ??? og det er jo i samme kode linie??
Avatar billede bojohansen Nybegynder
21. april 2001 - 00:03 #9
Problemet løst :-))

I stedet for :

If RS.EOF Then
  FejlYourIdNotInDb = FejlYourIdNotInDb + 1
  Else
  If RS(\"MedlemsPassword\") <> Password Then
  FejlForkertPassword = FejlForkertPassword + 1
  Else
  If RememberMe = \"\" Then
  FejlRememberMe = FejlRememberMe + 1
  End If


Så skrives der bare :

If RS.EOF Then
  FejlYourIdNotInDb = FejlYourIdNotInDb + 1
  End If
  If RS(\"MedlemsPassword\") <> Password Then
  FejlForkertPassword = FejlForkertPassword + 1
  End If
  If RememberMe = \"\" Then
  FejlRememberMe = FejlRememberMe + 1
  End If

Og så fjernes de sidste 2 End If i bunden, så funger det :-)))
Avatar billede bojohansen Nybegynder
21. april 2001 - 00:07 #10
Ok jeg burde nappe pointene selv men sådan er jeg ikke :-))

Kan du sige mig erikjacobsen hvoffor

instr(EtElleAndet ,\"\") ikke virker

men jeg er nød til at bruge

If YourId = (\"\") Or Password = (\"\") Then
  Fejl = Fejl + 1

Er det bare fordi \"\" er intet og derfor ikke kan fortolkes af instr ???
Avatar billede erikjacobsen Ekspert
21. april 2001 - 00:07 #11
Helt i orden Bo. Ellers burde der jo også have været en
fejlmeddelelse, og det havde du jo ikke skrevet!
Avatar billede bojohansen Nybegynder
21. april 2001 - 00:17 #12
Nej nej der kom heller ikke en fejl meddelse, man fik bare siden at se, men hel blank, sikkert fordi den af en eller anden grund ikke kan fortolke forskelligehederne i værdierne når man kombinere If Else Else End If til at tjekke næste værdi på denne måde uden at definere en rigtig action??????? :-) aner det simpelthen ikke, men det kan også være lige meget, sådan gør jeg det da bare ikke mere (Hermed skrevet i dumme bogen :-))

Nu har det instr spørgsmål intet med fejlen at gøre eller for den sags skyld dette spørgsmål, men ved du hvoffor instr ikke kan fortolke værdien \"\"

Hvis du ved så er det fint og ved du det ikke så er det også fint.

Du er den eneste der har lagt et svar så derfor er du også den eneste der får point for din deltagelse i dette ?
Avatar billede erikjacobsen Ekspert
21. april 2001 - 00:21 #13
instr(Etellerandet,\"\") spørger om den tomme streng, nemlig \"\", er en del af
Etellerandet, og det er den jo altid. Det rigtigste er

  if yourid=\"\" or password=\"\" then

(eller med paranteser, hvis du synes det er kønt).

Men du skal da have points. Du løste dit eget problem!
Avatar billede bojohansen Nybegynder
21. april 2001 - 00:27 #14
Tjaaaaa jeg løste det godt nok selv, men jeg ved selv hvor trælst det er at arbejde gratis og desuden giver jeg gerne 60 points eller skal vi sige 60 pap penge for at andre gider glo min kode igennem :-))

Nu er det senge tid, så vi ses næste gang jeg er i nød :-))
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

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