Avatar billede badazz Novice
18. april 2005 - 03:07 Der er 4 kommentarer og
1 løsning

Lidt iframe problemer

Hejsa.. jeg har et loginsystem liggende i en iframe
Koden ser således ud:

<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("usersystem.mdb")

If Request("mode") = "Check" then

    ' Authes user, password, and fixed a known securitybug to many login systems.
        strUsername = Trim(Replace(request("username"),"'","''" ))
        strPassword = Trim(Replace(request("password"),"'","''" ))

  Sql = "Select Count(*) as Found from users where (username = '" & strUsername  & "') and (password ='" & strPassword  & "')"
  Set LO = RS.Execute(Sql)
  if LO("Found") = 0 then
    Session("login") = ""
    error = "You´re not authed be the system"
  else
  strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("usersystem.mdb")
  Set myConn = Server.CreateObject("ADODB.Connection")
  myConn.Open strDSN
  strSQL = "SELECT * FROM users where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
  Set ez = myConn.Execute(strSQL)
    Session("login") = "Authed"
    Response.Redirect "admin/index.asp"
    EZ.Close
    RS.Close
    Conn.Close
  End if
End if
%>

som man kan se bliver man efter korrekt indtastet brugernavn og pass vidresendt til "admin/index.asp" men så kommer problemet, siden loader inde i iframen. men den skulle gerne have loadet hele i hele siden.. men hvordan får jeg implementeret en Target="_top" inde i den asp kode??

Mvh Brian
Avatar billede olebole Juniormester
18. april 2005 - 03:29 #1
<ole>

Det kan du ikke, da ASP'en kører på serveren og ikke aner, hvad der foregår i browseren. Du kan i index-filen skrive:

<script type="text/JavaScript">
if (top!=window) top.location.href = window.location.href;
</script>

- så vil JS reloade dokumentet i det øverste window-object i hierakiet (= browserens hoved-vindue), hvis/når det loades i en iframe.

/mvh
</bole>
Avatar billede badazz Novice
18. april 2005 - 10:10 #2
det vil jeg lige prøve
Avatar billede and_ Nybegynder
18. april 2005 - 10:58 #3
Du skal også passe på i sammenhæng med at sætte en session og redirecte med det samme bagefter.
Dette har iis desværre ikke det bedste ry for at kunne håndtere..
Bare søg her på eksperten, der er masser der har problemer med det...

En god workaround er at bruge javascript til det:

    Session("login") = "Authed"
    Response.write "<script language=""javascript"">top.location = 'admin/index.asp';</script>"

Dette er så dog ikke den mest korrekte måde, som olebole nok også vil præcisere, men for at gøre det helt rigtigt, så lav den med en onload på et body-tag:

    Session("login") = "Authed"
    Response.write "<script language=""javascript"">function skift(){top.location = 'admin/index.asp'}</script><body onload=""skift();""></body>"
Avatar billede badazz Novice
28. april 2005 - 23:57 #4
and og olebole er velkomne til at poste et svar...
Avatar billede and_ Nybegynder
29. april 2005 - 08:19 #5
svar :)
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