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

Variable sessión

Estas en el tema de Variable sessión en el foro de ASP Clásico en Foros del Web. Hola amig@s, otra pregunta Tengo una página privada y cada persona tiene un nombre de usuario y contraseña. Bien cuando validamos esos datos, si son ...
  #1 (permalink)  
Antiguo 01/12/2003, 10:29
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Variable sessión

Hola amig@s, otra pregunta

Tengo una página privada y cada persona tiene un nombre de usuario y contraseña. Bien cuando validamos esos datos, si son ciertos, pongo el valor del objeto sessión 1 en caso contrario sería 0. Una vez entrado en la página aparece un panel con varias secciones, accediendo una sección, por ejemplo cambiar contraseña, cambiamos la contraseña y redirecciono a la página del panel pero me sale la misma página para identificar el usuario ...

acceso.asp

if (request.form<>"") then

//si los valores son ciertos
session("usuario")=1
//PANEL DE SECCIONES
//si no son ciertos los valores
session("usuario")=0
else

// PÁGINA DE AUTENTIFICACION

end if

Se entiende?

PD: Todas las páginas están restringidas
  #2 (permalink)  
Antiguo 01/12/2003, 11:49
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 182
Antigüedad: 20 años, 8 meses
Puntos: 0
A que te refieres con que estan restringidas? Supongo que habrás creado un fichero de seguridad seguridad.int para restringilas. Si es asi comprueba ese fichero haber si se cunple la condicion.
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
  #3 (permalink)  
Antiguo 01/12/2003, 12:18
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
No me entendiste ... a ver todas las paginas restringidas tienen esa condición:

if session("usuario")<>1 then
response.redirect "index.asp"
else
// contenido de la pagina
end if
  #4 (permalink)  
Antiguo 01/12/2003, 12:36
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 182
Antigüedad: 20 años, 8 meses
Puntos: 0
Por lo que veo, tu pones la condicion de que te llegue algo de un formulario, pero si no te llega, te va a la pagina de validar usuario. Pues bien se me ocurre:
¿En la otra pagina has puesto un formulario que te envie datos a esta?
Es decir:
paginadelacotraseña.asp
<html>
<body>
<form name=loquesea id=loquesea method=post accion="paginadestino.asp">
'aqui los inputtex ect...
</form>
</body>
</html>
Jeje se me olvido cerrar el form
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
  #5 (permalink)  
Antiguo 01/12/2003, 12:45
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Te voy a explicar desde 0 ...

Tengo una website que tiene una página con un formulario de acceso, es decir nombre de usuario y contraseña y el resto de las paginas nadie puede entrar sin identificar, entiendes? Bien una vez identificado en la página de acceso, la variable session es 1, teniendo acceso aparece un menú (cambiar contraseña, cambiar datos usuario, etc...) entiendes? Bueno entonces vamos a cambiar la contraseña de usuario, la cambiamos y aparece un mensaje de: "contraseña cambiada, volver al Menú", entonces le doy al vinculo Volver y me obliga a identificar de nuevo para entrar en el menú, es el problema que yo quiero resolver ...

Se entiende?

Saludos
  #6 (permalink)  
Antiguo 01/12/2003, 12:58
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 182
Antigüedad: 20 años, 8 meses
Puntos: 0
No se, por lo que veo tienes todo correcto.
Se me ocurre que pueda ser que no comparas cadenas iguales, te explico:
Cuando crees la variable de sesión combiertela a entero session("usuario")=cint(1)
Por lo demás no veo nada raro.

Aunque pensandolo bien no creo que sea ese el fallo, si puedes pon el codigo más estenso para poder ver el posible error, es decir la parte en la que asignas el 1 o el 0 a la variable de sesion, para asegurarte de que la variable vale 0 de seguro, aunque supongo que si por que segun dijiste todas las páginas tienen la validacion, por lo que me supongo que en la zona de cambiar contraseña primero compruebas que sea el valor 1 antes de poder entrar en ésta.
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.

Última edición por GaRcY; 01/12/2003 a las 13:03
  #7 (permalink)  
Antiguo 01/12/2003, 13:13
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
ACCESO.ASP


<%if request.form("usuario")="" then%>

'................................................. ........
USUARIO
CONTRASEÑA
'................................................. .........

<%else

usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("usuarios.mdb"))
set rs = CreateObject("ADODB.Recordset")
sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'"
'response.write sqltxt
rs.Open sqltxt, conn
if not rs.eof then

if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("usuario")=1

'...............................................
MENU SECCIONES

'...............................................



end if
else

session("usuario")=-1

end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if session("usuario")=-1 or session("usuario")="" then

'Usuario inexistente o contraseña incorrecta

end if

end if%>


Y RESTO DE LAS PAGINAS

<% if session("usuario")<>1 then
response.redirect "acceso.asp"
else
'CONTENIDO DE LA PAGINA
%>

Cuando escogo una seccion y quiero volver al menu ... automaticamente me aparece la pagina para identificar ...
  #8 (permalink)  
Antiguo 01/12/2003, 17:56
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 182
Antigüedad: 20 años, 8 meses
Puntos: 0
Bien, aparte de ver que abres 3 if y cierras cuatro (que no será este el error ya que me supongo que no estara íntegro el código y ademas te daría el error "if sin end if") no veo nada raro.
Vamos haber si haciendo pruebas lo sacamos, haz una cosa comenta el response.redired de comprobar el usuario y en la página que debería ir si funcionase correctamente pon un response.write("sesion vale=" & session("usuario")), con esto mostrarás lo que vale la variable, y me dices lo que vale.
Haber si poco a poco lo sacamos.
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
  #9 (permalink)  
Antiguo 01/12/2003, 18:40
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
si los datos son correctos, el valor de sessión("usuario") es 1 y en caso contrario es -1
  #10 (permalink)  
Antiguo 02/12/2003, 07:27
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola Korku, (y todos los demás)
me pasa exáctamente lo mismo, y no doy con el problema.

He leido por ahí que hay que tener activada la recepción de cookies en el navegador para que funcionen las variables de session, pero las tengo activvadas y nada.

En mi caso es peor; hace la validaciön del usuario y accede a la pagina a la que se hace el redirect pero aun conserva el valor de session("USUARIO"), accedo a una segunda página en la cual el valor se mantiene, pero al refrescar o tratar de acceder a una tercera, se pierde.

A ver si entre todos damos con la solución.

Gracias y un saludo.

P.D.: si no te funciona desde el principio a lo mejor tendrías que definir el timeout del session en global.asa a 20.
  #11 (permalink)  
Antiguo 02/12/2003, 07:37
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 182
Antigüedad: 20 años, 8 meses
Puntos: 0
Bueno, viendo estos últimos mensages me he dado cuenta de que a mi me pasaba algo parecido antes es decir ¿si tengo todo bien por que se me borran las variables de sesión cuando cambio de página? pues bien después de mucho investigar, por casualidad di con el error. Es un poco raro pero desde entonces no tengo ya más problemas y no se el motivo, asi que si alguien lo sabe, que lo exponga para aclararlo.
Yo tengo un libro de visitas en una página, y claro lo tengo en un servidor gratuito con lo que el nombre de la barra de direccion es algo asi www.unacosa.com/libro y como no me gustaba lo puse una redirección de estas de .tk "www.libro.tk". Pues bien cuando entrabas desde esta redirección, me fije que en la barra de direcciones cuando cambiabas de página, el nombre seguia siendo "www.libro.tk" es decir no ponia por ejemplo "www.libro.tk/visitas.asp?idlogin=1" y los usuarios que se querían logear, lo hacian, pero al cambiar de página se borraban las variables y ya perdian ese logeo. Lo comprobe entrando por la ruta real es decir "www.unacosa.com/libro" y mi sorpresa fue que al logearme, me dejaba y cambiaba de página y seguia logeado. Lo probe varias veces, y seguia pasando lo mismo con las dos (una me dejaba, la otra no) y entonces decidí poner siempre la ruta real y hasta ahora me ha ido bien.
Haber si con esto os he ayudado algo, si tenéis lo mismo que yo, probad haber.
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
  #12 (permalink)  
Antiguo 02/12/2003, 07:41
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola,
si, ahí podría dar problemas, también he leido, por si puede ayudar a alguien que las páginas no deben usar el simbolo _, por ejemplo : ver_visitas.asp.

Saludos.
  #13 (permalink)  
Antiguo 02/12/2003, 10:04
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
He probado quitando las _ y el problema sigue igual ... la verdad es que me estoy volviendo loco

Cada vez entiendo menos :(
  #14 (permalink)  
Antiguo 02/12/2003, 10:05
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
A ver si en este foro hay un experto en ASP ... por lo que veo no encuentro una sincera solución
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #15 (permalink)  
Antiguo 02/12/2003, 11:47
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Kerku,
me imagino que habrás probado, pero intenta metiendo el valor de session entre comillas, como valor de texto:

session("usuario") = "-1"

ya me dirás.
  #16 (permalink)  
Antiguo 02/12/2003, 13:23
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Kerku,
no te lo vas a creer!, en mi caso lo que estaba fallando es que la página no encontraba una fotografía (pq no estaba) que tenía que mostrar, y por alguna oscura razón, a ver si alguien nos lo explica, provocaba que se perdiera el valor de session.

Revisa que las fotografías que tiene que mostrar la página esten disponibles, en el caso de las mías, la dirección donde se encuentran está en una bd, así:

<%
if rs.Fields("FOTO1") <> "" THEN
FOTO1 = rs.Fields("FOTO1")
end if
%>

<% IF FOTO1 <> "" THEN%>
<a href="javascript:verfoto('foto.asp?FOTOG=./fotos/<%=FOTO1%>');" ALT="AMPLIAR FOTO">
<IMG SRC="./fotos/<%=FOTO1%>" WIDTH="220" VSPACE="3" hspace="5">
</a>
<% ELSE 'Pone imagen por defecto%>
<IMG SRC="./fotos/1.jpg" VSPACE="3" hspace="5">
<% END IF %>

Te paso el código que creo que lo verás mejor.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:20.