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

problema con session, cookies y acentos

Estas en el tema de problema con session, cookies y acentos en el foro de ASP Clásico en Foros del Web. A ver, acabo de subir mi primera web asp. El caso es que evidenemente estoy de probaturas. En principio todo funciona mas o menos bien, ...
  #1 (permalink)  
Antiguo 22/03/2004, 16:39
 
Fecha de Ingreso: mayo-2003
Mensajes: 31
Antigüedad: 22 años
Puntos: 0
problema con session, cookies y acentos

A ver, acabo de subir mi primera web asp. El caso es que evidenemente estoy de probaturas. En principio todo funciona mas o menos bien, con algun problemilla que ya ire comentado.

El tema es que tengo un menu de administracion, con una pagina para hacer login. Esto funciona ok, y vas al menu. Ahora viene el problema. Cada pagina del menu evidentemente quiero protegerla para que no se pueda entrar directamente sabiendo la url(sin pasar por login). Entonces al hacer login creo una variable Session("autorizado")=1.
Bien, luego tengo un asp con este codigo que va en un include al principio de cada pagina.

comprobar.asp
Código:
<%'comprobar que se tiene permisos para poder acceder a esta pagina

if session("autorizado")= "" then
response.redirect("error_acceso.asp")

end if
%>
Pues nada, que al intentar ir a cada pagina despues de hacer login me da error(me redirige a la pagina).Entonces he subido un asp k me compruebe que variables sesion tengo y me dice que tengo 0. Es decir no me esta creando la variable sesion.Por que?
De hecho en mi ordenador funciona perfectamente

Edito y añado.

Me he dado cuenta que tengo una encuesta, entonces para que no voten 2 veces lo controlo con una cookie. Bien pues desde el servidor tampoco me la manda. En mi ordenador tambien funciona correctamente.

Y por ultimo, resulta que con netscape, los acentos y las ñ salen ?.

Eso es todo, un cable please

Última edición por flipudez; 22/03/2004 a las 17:10
  #2 (permalink)  
Antiguo 22/03/2004, 18:40
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 21 años, 2 meses
Puntos: 0
Estimado flipudez, probaste con usar:

<%'comprobar que se tiene permisos para poder acceder a esta pagina

if session("autorizado") <> 1 then
response.redirect("error_acceso.asp")

end if
%>

De todas formas no creo que tu error esté en cómo verificás la variable de sesión, quizás esté en cómo estés escribiendo su valor, lo mismo con el cookie. Sería más fácil ayudarte si incluyeras esos códigos también así podríamos ver si no estás cometiendo ningún error en esas páginas.

A qué te referís si en Netscape salen los acentos y las ñ? si salen dónde? en una página html por supuesto que sí. También sería más fácil ayudarte si aclararas un poco más tu duda.

  #3 (permalink)  
Antiguo 22/03/2004, 18:45
 
Fecha de Ingreso: mayo-2003
Mensajes: 31
Antigüedad: 22 años
Puntos: 0
ummm, el problema de la session mas bien es que NO crea la sesion.
el codigo seria el siguiente, el archivo admin.asp que recibe la autentificacion.

Código:
<!--#include file="conexion.asp"-->
<%
'Comprobamos que el login y password que ha introduccido es de un administrador
strSQL = "Select * from usuarios where usuario = '"&request("usuario")&"' AND contrasena = '"&request("pass")&"'"
Set miConexion = Conexion.Execute(strSQL)

'Si no se encuentra ningún administrador con ese login y password se le advierte del error
If miConexion.BOF And miConexion.EOF Then
Response.Redirect("error_acceso.asp")
End If

'Si es un administrador se crean las sessiones correspondientes para él
session("login")= request("usuario")
session("password")= request("pass")
session("autorizado")=1

miConexion.Close
Set miConexion=nothing
Conexion.Close
Set Conexion=nothing


%>
y el codigo de una pagina seria meterle un include con el archivo de arriba.(me refiero al comprobar.asp, claro)

lo de la cokkie pos simpremente es esto
Código:
response.Cookies("id")=request.form("idencuesta")
Response.Cookies("id").Expires = "1/10/2006"

Última edición por flipudez; 22/03/2004 a las 18:54
  #4 (permalink)  
Antiguo 22/03/2004, 18:48
 
Fecha de Ingreso: mayo-2003
Mensajes: 31
Antigüedad: 22 años
Puntos: 0
ahhh,lo del netscape. Pues que la pagina el texto, con explorer se ve correctamente, pero con netscape, el texto que tenga un acento o una ñ, saca en vez de eso una interrogación ?. Huele a problema de idioma, pero porque, es que no caigo.

Gracias, lo fundamental es pk coño en el server no se me crea la variable sesion :(
  #5 (permalink)  
Antiguo 22/03/2004, 21:52
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 21 años, 2 meses
Puntos: 0
Ok, ahora me queda un poco más claro. El tema es:
1º _ Para qué estás creando la variable de Sesión "autorizado" cuando ya tenés dos variables que podés chequear. Me explico:

En lugar de poner:

If session("autorizado") = "" then

Podés poner:

If session("login") = "" and session("password") = "" then

Además de la forma que le estás asignando el valor 1 a tu variable de sesión lo está tomando como si le estuvieras pasando una variable, o sea que la línea:

session("autorizado") = 1

Le está asignando a session("autorizado") el valor de una supuesta variable llamada 1, como no la encuentra siempre le asigna una cadena vacía, por eso te parece que la sesión no la inicia. Probá de chequear las variables de sesión login y password y ahí si vas a ver que te funciona.

Con el tema del cookie no parece que estés cometiendo ningún error pero si te falla puede ser que estés escribiendo el cookie y tratando de leerlo en la misma página, aunque no lo puedas creer esto no se puede hacer con asp. Cuando escribís un cookie si o si tenés que redirigirte a otra página o al menos recargar la misma para que te tome el valor del cookie, sino no te va a funcionar nunca, es un bug de asp.

La verdad que es la primera vez que escucho y me entero que pase algo así con Netscape, a mí personalmente nunca me pasó y en esto realmente no sé como ayudarte.

De todas formas espero que mis consejos te sirvan de algo.

  #6 (permalink)  
Antiguo 23/03/2004, 07:13
 
Fecha de Ingreso: mayo-2003
Mensajes: 31
Antigüedad: 22 años
Puntos: 0
pues la session de user y pass las puse mas que nada para comprobar tambien que me cogia las variables del formulario, pero es que esas tampoco me las crea. Vamos que en mi ordenador me crea las 3 variables, en sync ninguna.

Ellos ya me han dicho que no les constan problemas de ese tipo, por otra parte yo creo que normal, porque todo lo demas funciona perfectamente
  #7 (permalink)  
Antiguo 23/03/2004, 07:37
 
Fecha de Ingreso: mayo-2003
Mensajes: 31
Antigüedad: 22 años
Puntos: 0
nueva vuelta de tuerca, si pongo esto en la pagina
Código:
'Si es un administrador se crean las sessiones correspondientes para él
Session("autorizado")=1
response.write(Session("autorizado"))
pues reulta que me saca un 1 bien hermoso, pero ahi queda la cosa, porque este codigo me dice k no tengo variables de session.arg
Código:
<%
dim i

i=Session.Contents.Count
Response.Write("Session variables: " & i)

%>
ayuda desesperada,nif
  #8 (permalink)  
Antiguo 23/03/2004, 07:45
 
Fecha de Ingreso: mayo-2003
Mensajes: 31
Antigüedad: 22 años
Puntos: 0
SOLUCIONADOOOOOOOOO.Dios que bobada era. No tenia en el navegador lo de aceptar cookies de sesion. Dios, que chorrada. Pero no entiendo porque entonces en localhost funciona y en la web no.

Gracias kulijunfan por intentar ayudarme ;)
  #9 (permalink)  
Antiguo 16/04/2004, 05:31
 
Fecha de Ingreso: abril-2004
Mensajes: 1
Antigüedad: 21 años
Puntos: 0
Hola, habría alguna manera de detectar si el navegador tienes habilitadas las cookies de sesión
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 22:45.