Riporto in auge la discussione perché mi fa rabbia:
ho provato ogni metodo possibile:
creare dei frame - creare iframe - rinominare tutti default.asp e spostarmi con 'subfolder/'.
NIENTE MI MOSTRA SEMPRE la CARTELLA COME MINIMO
Non capisco... non lo fa con le pagine standard (collegate tramite link normali) ma quella di administration, che ha accesso tramite login sì.
Vi mostro il file login.asp, che fa riferimento ad un database contenente:
nomeutente
password
admin (boolean)
il primo campo controlla l'esistenza di un utente, il secondo la password, il terzo il diritto d'accesso: se è un user standard (UserOk) od un Admin (AdminOk).
Non troverete quindi nell'asp che vi do quindi informazioni confidenziali anche perché il link al database viene effettuato da un file esterno chiamato cn.asp.
<!--#include file="nocache.asp"-->
<%
if not request.QueryString("cmd") = "logout" then
if session("AdminOk")="true" then
response.Redirect "admin/administration.asp"
end if
if session("UserOk")="true" then
response.Redirect "soci/soci.asp"
end if
end if
%>
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<link rel="stylesheet" type="text/css" href="praise.css">
<body>
<!--#include file="admin/cn.asp"-->
<%
dim username
dim pass
dim msg
dim checked
msg= ("Inserire qui il nome utente e la password di accesso")
username = Request.Form("username")
pass = Request.Form("password")
if request.Form("Submit")="Accedi" then
dim rs
dim cn
set cn = server.CreateObject("Adodb.Connection")
set rs = server.CreateObject("Adodb.Recordset")
cn.Open conn
rs.open "Select * From Admin Where Utente='" & username & "'",cn
if not rs.eof then
if pass = rs.fields("Password") then
if rs.fields("Admin") then
session("AdminOk") = "true"
session.Contents.Remove("UserOk")
session.Contents("Username") = username
response.Redirect("./admin/administration.asp")
else
session("UserOk") = "true"
session.Contents.Remove("AdminOk")
session.Contents("Username") = username
response.Redirect("./soci/soci.asp")
end if
else
msg = ("Password non corretta - Riprovare")
end if
else
msg = ("Nome utente inesistente - Riprovare")
end if
rs.Close
cn.Close
set rs = nothing
set cn = nothing
End if
if request.QueryString("cmd") = "logout" then
'grandissimo errore di progettazione: senza il session.Contents.RemoveAll()
'le variabili AdminOk e UserOk continuano a portare il loro valore anche a sessione chiusa.
session.Contents.RemoveAll()
session.Abandon()
session("UserOk") = "false"
session("AdminOk") = "false"
End if
%>
<p align="center"><strong>ATTENZIONE: Queste pagina da accesso a materiale consultabile solo dai soci del coro ed alla gestione del sito da parte degli amministratori. Chi non fa parte di nessuno di questi staff, continui nella navigazione attraverso il menù in alto. </strong> </p>
<form name="form1" method="post" action="" target="pages">
<p align="center"><%=msg%></p>
<table width="48%" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFF00" align="center">
<tr>
<td width="31%" bgcolor="#FFFFFF"><strong>Nome Utente</strong></td>
<td width="69%"><input name="username" type="text" id="username"></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Password</strong></td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td><input type="submit" name="Submit" value="Accedi"></td>
</tr>
</table>
<p> </p>
</form>
<p></p>
</body>
</html>
Come modificare l'ASP in modo da non visualizzare niente sulla url? (Questo da accesso all'area privata del sito, sebbene sia protetta da controlli sulla session AdminOk ed UserOk non voglio che qualcuno la bypassi!! Inoltre il sito è custodito in frame... se qualcuno lo apre senza... non può muoversi da nessuna parte!)