Foros del Web » Programando para Internet » ASP Clásico »

problema pagina asp

Estas en el tema de problema pagina asp en el foro de ASP Clásico en Foros del Web. Hola tengo un problema, a ver si alguien me puede ayudar. Estoy haciendo una web con asp y una base de datos Access, os explico ...
  #1 (permalink)  
Antiguo 18/05/2004, 11:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
problema pagina asp

Hola tengo un problema, a ver si alguien me puede ayudar.

Estoy haciendo una web con asp y una base de datos Access, os explico como es y luego pregunto. Al final pondre el codigo.
La pagina principal es index.asp y desde aqui llamo a la subrutina <%call contenido()%> que se encuentra en contenido.asp (<%sub contenido()%>) y despues de hacer la consulta sql a la base de datos si estoy en el menu 6 cargo la pagina index.asp?id_idioma=1&seccion=6 en la que se pide nombre de usuario y contraseña para ver una pagina privada.
Ahora si el usuario no esta autorizado todo va bien, pero si esta autorizado se carga en una popup pop_pagina_privada.asp

Entonces el usuario autorizado ve mi pagina privada y al salir de ella (cerrando ventana o cerrando con el link que pongo para cerrar) si pincha Atras en el navegador es redireccionado a pagina_caducada.asp, hasta aki todo bien. Pero si se le ocurre escribir en la barra del navegador la direccion http://localhost/miDirectorio/inc/pop_pagina_privada.asp despues de haber entrado y salido de pop_pagina_privada.asp la puede volver a ver sin necesidad de introduccir su clave de acceso de nuevo. Esto es lo que no quiero que pase, quiero que se le redireccione a pagina_caducada.asp para que vuelva a identificarse. ¿Como lo puedo hacer?
(ah! si el usuario no ha accedido nunca a pop_pagina_privada.asp y escribe lo de antes, http://localhost/miDirectorio/inc/pop_pagina_privada.asp, es redirecionado a pagina_caducada.asp. Esto es lo que quiero que pase aun cuando se haya identificado alguna vez y haya cerrado la pop_pagina_privada.asp, agradezco la ayuda)

Otro problema que tengo es que en pop_pagina_privada.asp quiero cargar un flash y no me lo carga. Ya he cargado uno en una pagina intro.html y otro en la seccion 5 de mi web, que es index.asp?id_idioma=1&seccion=5.
¿Como puedo cargar el flash en pop_pagina_privada.asp?


Espero que alguien pueda ayudarme. Gracias y un saludo.
Ah! no soy muy experto en esto asi que el codigo que pongo a continuacion supongo que podria mejorarse.


index.asp
-----------

<!--#include file="inc/inc_variables.asp"--> ...1º linea...
<!--#include file="inc/inc_variables_servidor.asp"-->
<!--#include file="inc/inc_clases.asp"-->
<!--#include file="inc/inc_recordset.asp"-->
<!--#include file="inc/inc_textos.asp"-->
<!--#include file="inc/inc_menus.asp"-->
<!--#include file="inc/inc_contenido.asp"-->
<!--#include file="inc/inc_cont_lateral.asp"-->
<!--#include file="inc/inc_cont_superior.asp"-->
<!--#include file="inc/inc_funciones_generales.asp"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
...codigo no impotante, titulo, css y script...
</head>
<body ....lo que sea...>
<% call abre_base(objBase,strBase,"Access") %> ...codigo abrir la base en inc_recordset.asp...
...codigo no importante...
<% call contenido() %>
...codigo no importante...
<%call cierra_base(objBase) %> ...codigo cerrar la base en inc_recordset.asp...
</body>
</html> ...Ultima linea...

inc_contenido.asp
-------------------

<%sub contenido()%> ...1ª linea...
<%
sql="sentencia SELECT de sql"
call abre_rs(rs, sql, objBase) ...codigo abrir recordset en inc_recordset.asp...
if not rs.eof then
...codigo no importante, es para los otros menus...
if id_menu = 6 then ...menu de acceso de datos...
%>
<% session("autentificado") = "no" %>
<form action="inc/control.asp" method="POST">
...codigo no importante...
<%if request.querystring("errorusuario")<>"si" then%>
...codigo para decir Introduce tu clave...
<%else%>
...codigo para decir datos incorrectos...
<%end if%>
...codigo para pedir usuario y contraseña...
<input type="Submit" value="ENTRAR">
</form>
...codigo no importante...
<%end if%>
<%end if%>
call cierra_rs(rs) ...codigo cerrar recorset en inc_recordset.asp...
<%end sub%> ...Ultima linea...

control.asp
------------

<!--#include file="inc_variables_servidor.asp"--> ...1ª linea...
<!--#include file="inc_recordset.asp"-->
'miro a ver si la autentificacion es correcta
'creo una sentencia SQL con los datos recibidos
<%sql = "SELECT * FROM acceso_usuarios where nombre_usuario='" & request.form("usuario") & "' and pass_usuario='" & request.form("contrasena") & "'"%>
'conecto y extraigo de la base de datos
<%
call abre_base(objBase,"mibase","Access")
objBase.execute sql
call abre_rs(rs, sql, objBase)

if (not rs.eof) then
'Como se ha localizado un registro es que ese usuario existe y su contraseña es correcta
'coloco las variables de sesion
session("autentificado") = "si"
%>
<script language=javascript>
function ventanaSecundaria (URL){
//abro la popup
window.open(URL,"Pag_segura","width=740,height=400 ,scrollbars=NO, menubar=no, location=no, resizable=no")
}
ventanaSecundaria("../inc/pop_pagina_privada.asp");
window.location = "../index.asp?id_idioma=1&seccion=6" //redirecciono la pagina padre
</script>
<%
else
session("autentificado") = "no"
response.Redirect "../index.asp?id_idioma=1&seccion=6&errorusuario=si"
end if
'cierro la conexion con base de datos
call cierra_rs(rs)
call cierra_base(objBase)
%> ...Ultima linea...


pop_pagina_privada.asp
-----------------------

<!--#include file="seguridad.asp"--> ...pongo el codigo mas alante...1º linea...
<html>
<head>
...codigo no impotante, tituluo, css y script...
</head>
<body ...lo que sea...>


...aqui quiero meter un flash y no lo doy conseguido...

<br>
<br>
<a href="../inc/salir_pop_pagina_privada.asp">SALIR Y CERRAR VENTANA</a>
<br>
<br>
</body>
</html> ...Ultima linea...

seguridad.asp
--------------

<% ...1ª linea...
Response.Buffer = true
' compruebo que tengo la variable de sesion creada y con el dato correcto
if session("autentificado") <> "si" then
response.redirect "pagina_caducada.asp"
response.end
end if
%> ...Ultima linea...


salir_pop_pagina_privada.asp
-----------------------------

<% Session("autentificado")="no" %> ...1ªlinea...
<%session.abandon%>
<script language=javascript>
window.close()
</script> ...Ultima linea...


pagina_caducada.asp (esta pagina esta en construccion)
----------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...1ª linea...
<html>
<head>
<title>Pagina Caducada</title>
</head>
<body>
La pagina ha caducado
</body>
</html> ...Ultima Linea...
  #2 (permalink)  
Antiguo 18/05/2004, 11:35
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 7 meses
Puntos: 1
Cuando se cierre el popup manda terminar la sesión.

Saludos.
__________________
Ariel Avelar
  #3 (permalink)  
Antiguo 18/05/2004, 12:34
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
Con terminar la sesion te refieres a que ponga
<% session.abandon %>
en la pagina pop_pagina_privada.asp.
Si es esto ya lo he probado y no me funciona.
¿Alguna otra idea?
Y respecto a poner el flash en pop_pagina_privada.asp, no sabras como se hace??
Un saludo y gracias
  #4 (permalink)  
Antiguo 18/05/2004, 12:45
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 7 meses
Puntos: 1
Qué raro, entonces en la página por_pagina_privada.asp coloca la comprobación session("autentificado") ="Si" y si no tiene el valor "Si" no la muestres. También cuando se cierre el popup cambia el valor session("autentificado") ="No"
__________________
Ariel Avelar
  #5 (permalink)  
Antiguo 18/05/2004, 13:25
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
Eso tambien lo he probado, ya se me habia ocorrido, y tampoco me funciona ya que siempre que entro en pop_pagina_privada.asp lo hago con session("autentificado")="si" ya que ese valor lo toma en control.asp y redirecciono a pop_pagina_privada.asp.
Yo cero que el problema es que nunca me borra el valor de session("autentificado") al cerrar pop_pagina_privada.asp, ¿como lo puedo borrar? Creo que al poner session.abandon ya lo deberia borrar pero creo que no lo hace, ni tampoco toma el valor NO al salir de pop_pagina_privada desde que he entrado alguna vez en ella (antes de entrar si toma ese valor).
¿Por que sera?
Muchas gracias por tu ayuda, si se te ocurre algo mas dimelo por favor. Ya estoy medio desesperado!!!
Un saludo
  #6 (permalink)  
Antiguo 18/05/2004, 13:30
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 7 meses
Puntos: 1
¿Cómo le haces para terminar la sesión o cambiar de valor a la variable de sesión?

Me refiero a la manera en que haces que se ejecuten esas instrucciones. Lo que yo hago es, por ejemplo, en el onUnload del Popup abrir en una ventana más (de preferencia fuera de la vista del usuario) una página ASP que ejecute ya sea Session.Abandon o Session("autentificado") ="No"
__________________
Ariel Avelar
  #7 (permalink)  
Antiguo 18/05/2004, 13:40
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
¿Como termino la sesion? Pues cuando el usario pincha en el link SALIR Y CERRAR VENTANA de pop_pagina_privada.asp lo redirecciono a SALIR_pop_pagina_privada.asp y en esta pagina (que no ve el navegante) pongo el sesion.abandon y le mando que cierre la ventana. El codigo es:

salir_pop_pagina_privada.asp (no la ve el navegante)
-----------------------------

<% Session("autentificado")="no" %> ...1ªlinea...
<%session.abandon%>
<script language=javascript>
window.close()
</script> ...Ultima linea...

El OnUnload, no te entiendo a que te refieres. No soy aun muy experto.
Oye, muchisimas gracias por el tiempo que me dedicas, te estoy muy agradecido.
Saludos
  #8 (permalink)  
Antiguo 18/05/2004, 13:56
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 7 meses
Puntos: 1
Así como lo tienes, si el usuario cierra la ventana directamente dando click a la X no se abrirá la página que cierra sesión, ¿cierto? ¿Probaste si cuando le da click al vínculo Salir también muestra la página si la escribes directamente o si es sólo cuando se cierra la ventana sin dar click al vínculo?

Con lo del evento onUnload me refiero a que al momento de descargar el documento (lo que sucede yendo a otra página o cerrando la ventana) mandes llamar esa página SALIR_pop_pagina_privada.asp para que siempre se ejecute.

Espero haberme dado a entender...
__________________
Ariel Avelar
  #9 (permalink)  
Antiguo 18/05/2004, 15:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
Si, lo que dices es cierto. Pero el problema me lo daba siempre, daba igual que cerrara con la X o con el link.
Por fin lo he solucinado, me he documentado sobre el evento OnUnload y lo he usasdo en pop_pagina_privada.asp.
Ahora si el usuario usa el boton atras del navegador o escribe directamente la url es conducido a pagina_caducada.asp, que es lo que queria.
La solucion que he usado no es muy elegante ya que cuando el usuario cierra pop_pagina_privada.asp se abre y cierra automaticamente salir_pop_pagina_privada.asp, lo que produce que se haga mas lento el proceso de cierre de la ventana ya que esta se cierra y luego se abre la de salir y se cierra.

Todo el codigo que he puesto en el primer post lo conservo salvo el de pop_pagina_privada.asp que pasa a ser (por si te interesa):

<!--#include file="seguridad.asp"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Pagina Privada</title>
<link href="miweb.css" rel="stylesheet" type="text/css">
<script language="JavaScript" src="<%'= ruta0 %>miweb.js" type="text/javascript"></script>

<script>
function abreventana(){
window.open("../inc/salir_pop_pagina_privada.asp","salir","width=740,h eight=400,scrollbars=NO, menubar=no, location=no, resizable=no")
}
</script>

</head>
<body onunload="abreventana()">


...aqui quiero meter un flash y no lo doy conseguido...

<br>
<br>
<a href="../inc/salir_pop_pagina_privada.asp">SALIR Y CERRAR VENTANA</a>
<br>
<br>
<%session.abandon%>
</body>
</html> ...Ultima linea


Lo dicho, muchas gracias por la ayuda.
A mi fue la unica solucion que se me ocurrio cuando me hablaste de OnUnload, lo conocia pero no sabia para que valia.
Por cierto, respecto a meter el flash en pop_pagina_privada.asp, ¿no sabras como hacerlo? Ya he probao mil cosas y nada.
Si pongo <object>....lo del flash..</object> no me va, ¿por que?
saludos y gracis de nuevo

Última edición por armijo; 18/05/2004 a las 15:14
  #10 (permalink)  
Antiguo 18/05/2004, 15:58
Avatar de Ruchu  
Fecha de Ingreso: octubre-2001
Mensajes: 698
Antigüedad: 22 años, 8 meses
Puntos: 2
Puedes ejecutar paginas ASP o PHP sin necesidad de "cargarlas" en una ventana, ya sea pop up o no. No se si se te habia ocurrido el truquillo.

Te pongo un ejemplo:
Te creas una funcion javascript que podria ser esta. Se usa para precargar una imagen en el navegador, pero si "precargas" una pagina ASP, PHP... también la llama y logicamente se ejecuta.

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


MM_preloadImages('cierraSesion.asp')

me entiendes?
  #11 (permalink)  
Antiguo 18/05/2004, 17:03
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
A ver, entiendo lo que me quieres decir pero ni se me habia pasao por la cabeza ya que no soy muy experto en esto.
El script que me dices, entiendo lo que hace cada cosa pero en conjunto no me entero de nada.
Gracias por la idea, la estudiare a ver si aprendiendo un poco mas me doy enterado bien de como hacer lo que dices.
Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:10.