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

Problema de Sesion

Estas en el tema de Problema de Sesion en el foro de ASP Clásico en Foros del Web. Tengo una pagina donde se inicia sesion eso esta perfecto la cuestion es la siguiente: tengo 12 paises de los cuales cada uno tiene un ...
  #1 (permalink)  
Antiguo 22/12/2005, 07:34
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Problema de Sesion

Tengo una pagina donde se inicia sesion eso esta perfecto la cuestion es la siguiente: tengo 12 paises de los cuales cada uno tiene un password y login para iniciar sesion de alli muestro una pagina con dos opciones donde muestra ver curriculums y ver promotoras la idea es que si inicio sesion con argentina por ejemplo me muestre informacion solo de argentina, en mi bd tengo los siguientes campos: usuario : argentina, password: argen, cod_pais:10 (esta esta relacionada a la tabla pais el codigo 10 es de argentina) como hago para traerme informacion solo de ese pais??
  #2 (permalink)  
Antiguo 22/12/2005, 08:22
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
tenes que retraer en tu rs el codigo del pais, o lo envias en el momento que te logias.

por ejemplo si tu pagina login.asp para a intro.asp

podes mandar a intro.asp?id_usuario=1&cod_pais=10

y dentro del intro pones un

cod_pais = request.querystring("cod_pais")


y en los sql que necesitas mostrar los que son de ese pais pones

"select * from TuTablaPromotoras where cod_pais = "& cod_pais &" order by TuId desc"
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 22/12/2005, 08:37
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Nop

En mi bd yo tengo los siguientes campos usuario, password y pais (este solo contiene el nombre del pais) como hago para que cuando un usuario inicie sesion este pueda ver solo informacion de pais que pertenece, solo existe un usuario por pais .
  #4 (permalink)  
Antiguo 22/12/2005, 08:57
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 21 años, 5 meses
Puntos: 144
Para evitar que manipulen la barra de direcciones de tu navegador, cambiando el código del pais, puedes hacer algo como esto (es la idea con lo que debes quedarte)...

Seguramente tienes algo así cuando se valida el usuario:
session("validado")=true, o así: session("validado")=1, o similar.

Bueno, pues una vez validado, antes de cerrar el recordset, puedes hacer lo siguiente, redefiniendo la sesión "validado", por una concatenación de la sesión y el código del país (si te da error, quizás debas pasar los datos numéricos a string, no en la BD, sino cuando redefines la sesión):

session("validado") = session("validado") & "_" & rs("cod_pais")

Luego haces un split para separar los valores de la matriz, con el separador "_", y tienes como primer elemento, el valor de la sesión para un usuario registrado (true, o 1, según el ejemplo de antes), y como segundo elemento, el código del país. Con el primer elemento, le permites la entrada en las secciones de uso restringido, y con este segundo elemento, solo le permites acceder a aquellos datos correspondientes a ese país. Puedes jugar en todas las páginas con estos 2 elementos, ya que forman parte de la sesión para los usuarios validados.

Esto de concatenar, te propongo que lo hagas así, para no tener dos sesiones, ...que también podría ser, tan solo tienes que poner session("pais") = rs("cod_pais"), y no tener por tanto, 2 sesiones para cada usuario que se valida (una para saber si es true o 1, siguiendo el ejemplo que te ponía, y otra para saber de que país es: 1, 2, 3, ...12).

No sé si los maestros tendrán alguna idea mejor...
  #5 (permalink)  
Antiguo 22/12/2005, 11:55
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Creo q no me explique bien

hay 12 personas de 12 paises diferentes cada uno con un login y un password al logearse cualquiera de estas debe pasar a una pagina donde pueda ver curriculums y promotoras pero solo del pais que pertenece. Ejm: login: argentina, password :argen (solo veo curriculums y promotoras de argentina) entonces tengo una bd que se llama administrador que tiene los campos usuario, password y nombre(del pais) cual seria la sentencia para que si la persona de argentina (ejm) se logea solo vea informacion de este pais

la sentencia que tengo para ver solo argentina es esta

sql = "select distinct area_v.cod_area(esto se refiere a la carrera de estudio), area_v.nom_area (nombre de la carrera de estudio)FROM area_v (tabla que almacena las carreras de estudio y codigo de la carrera)RIGHT JOIN curriculumv (tabla principal que tiene informacion general de la persona)ON area_v.cod_area = curriculumv.cod_area where (paises = 'el salvador')"
  #6 (permalink)  
Antiguo 22/12/2005, 11:57
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
disculpen

Me falto colocar que lo que quiero es un codigo que reconosca el password y el login de la persona y le muestre solo informacion del pais que pertenece la misma...
  #7 (permalink)  
Antiguo 22/12/2005, 12:34
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
para el formulario de login lee este topico

http://www.asptutor.com/asp/vart.asp?id=50
__________________
JuanRa Pérez
San Salvador, El Salvador
  #8 (permalink)  
Antiguo 22/12/2005, 13:10
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Gracias

Gracias Juan por la pagina pero ya tengo echa esa parte de session solo me falta que cuando se loguee muestre informacion del pais que se logueo
  #9 (permalink)  
Antiguo 22/12/2005, 14:07
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Fijense

<%
if request.QueryString ("nombre") = "argentina" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'argentina') AND (password = 'even2005') AND (nombre = 'argentina')"
elseif request.QueryString ("nombre") = "brazil" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'brazil') AND (password = 'even2005') AND (nombre = 'brazil')"
else
sql = "select distinct area_v.cod_area, area_v.nom_area FROM area_v RIGHT JOIN curriculumv ON area_v.cod_area = curriculumv.cod_area where paises = ('panama')"
end if
set rs = con.Execute(sql)
%>

Algo asi es lo que necesito!!!
  #10 (permalink)  
Antiguo 22/12/2005, 14:09
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
pega el codigo de cuando te logias

haces un response.redirec ???????
__________________
JuanRa Pérez
San Salvador, El Salvador
  #11 (permalink)  
Antiguo 22/12/2005, 14:11
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
sip cuando me logueo no tengo problema la cuestion es q no se traerme la informacion especifica de un pais, se supone que al loguearse debe traer informacion solo del pais que perteneces
  #12 (permalink)  
Antiguo 22/12/2005, 14:12
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
este es el codigo para loguearse

<%
'Set Conn = Server.CreateObject("ADODB.Connection")
'sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
' "Data Source=\\premfs5\sites\premium10\rodovias\database \db1.mdb;" & _
' "Persist Security Info=False"
'Conn.Open(sConnection)

Set Con = Server.CreateObject ("ADODB.Connection")
Con.Open "driver={SQL Server};server=website; database=evenres; uid=sa;pwd=sa"

%>

<%
dim login
dim password
dim sSQL
dim rs
login = request.form("txtLogin")
password = request.form("txtPassword")

if login = "" or password = "" then
response.redirect "sesion.asp"
else
sSQL= " SELECT administrador.login, administrador.nombre, administrador.password FROM administrador WHERE administrador.login='"&login&"' and administrador.password='"&password&"';"
set rs = con.Execute(sSQL)
if rs.eof and rs.bof then
response.redirect "administradorno.asp"
else
dim val
dim snombre
snombre=rs.fields("nombre")
Session("username") = rs.fields("nombre")
response.redirect "sesion_pass.asp"
end if
rs.close
set rs = nothing
end if

%>
  #13 (permalink)  
Antiguo 22/12/2005, 14:14
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
desde tu pagina de login tenes que poner la un response.redirect en el cual lo envias a la otra pagina cierto????
__________________
JuanRa Pérez
San Salvador, El Salvador
  #14 (permalink)  
Antiguo 22/12/2005, 14:15
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
response.redirect "sesion_pass.asp" este es el reponse y las opciones q aparecen en esta pagina son ver curriculum y ver promotoras
  #15 (permalink)  
Antiguo 22/12/2005, 14:25
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
en tu tabla administrador
tenes el campo pais???

si es asi mandalo como session


session("pais") = rs.fields("pais")

luego en la pagina session_pass.asp tenes que recuperarla

pones

pais = Session("pais")

luego en tus sql mostras

select * from tus tablas where pais = "& pais &"
__________________
JuanRa Pérez
San Salvador, El Salvador
  #16 (permalink)  
Antiguo 22/12/2005, 14:27
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
pudes agregar un session("pais")

luego en session_pass.asp dependiendo del pais

Código:
select case session("pais")
case "argentina"
        mostrar_informacion_de_argentina
case
       "brasil"
       mostrar_informacion_de_brasil
case else
    ' lo puedes redireccionar al login
end select
__________________
Manual de ASP Avanzado ;-)
  #17 (permalink)  
Antiguo 26/12/2005, 19:29
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Sera Que Alguien Realmente Me Puede Ayudar

Alguien Puede Ayudarme??
  #18 (permalink)  
Antiguo 27/12/2005, 08:03
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Sentencia

Necesito una sentencia parecida a esta pero que funcione

<%
if request.QueryString ("nombre") = "argentina" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'argentina') AND (password = 'even2005') AND (nombre = 'argentina')"

elseif request.QueryString ("nombre") = "brazil" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'brazil') AND (password = 'even2005') AND (nombre = 'brazil')"

elseif request.QueryString ("nombre") = "colombia" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'colombia') AND (password = 'even2005') AND (nombre = 'colombia')"

elseif request.QueryString ("nombre") = "costa rica" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'costa rica') AND (password = 'even2005') AND (nombre = 'costa rica')"

elseif request.QueryString ("nombre") = "ecuador" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'ecuador') AND (password = 'even2005') AND (nombre = 'ecuador')"

elseif request.QueryString ("nombre") = "el salvador" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'el salvador') AND (password = 'even2005') AND (nombre = 'el salvador')"

elseif request.QueryString ("nombre") = "estados unidos" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'estados unidos') AND (password = 'even2005') AND (nombre = 'estados unidos')"

elseif request.QueryString ("nombe") = "mexico" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'mexico') AND (password = 'even2005') AND (nombre = 'mexico')"

elseif request.QueryString ("nombre") = "panama" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'panama') AND (password = 'even2005') AND (nombre = 'panama')"

elseif request.QueryString ("nombre") = "puerto rico" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'puerto rico') AND (password = 'even2005') AND (nombre = 'puerto rico')"

elseif request.QueryString ("nombre") = "republica dominicana" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'republica dominicana') AND (password = 'even2005') AND (nombre = 'republica dominicana')"

elseif request.QueryString ("nombre") = "venezuela" then
sql= "SELECT login, password, nombre FROM administrador WHERE (login = 'venenzuela') AND (password = 'even2005') AND (nombre = 'venezuela')"

else
sql = "select distinct area_v.cod_area, area_v.nom_area FROM area_v RIGHT JOIN curriculumv ON area_v.cod_area = curriculumv.cod_area"
end if
set rs = con.Execute(sql)
%>
  #19 (permalink)  
Antiguo 27/12/2005, 13:01
 
Fecha de Ingreso: noviembre-2005
Mensajes: 20
Antigüedad: 19 años, 5 meses
Puntos: 0
Hola, yo no se mucho de programación,pero si le haces un if a cada botón del pais, el cual te llevará la página con la información y los links correspondientes a ese pais?
Perdon si no tiene nad que ver, pero por ahíte sirve
Saludos
  #20 (permalink)  
Antiguo 27/12/2005, 13:37
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
Nop

Porque yo solo quiero que dependiendo del login y el password que inicie sesion solo vea informacion referente a su pais
  #21 (permalink)  
Antiguo 27/12/2005, 16:47
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
no se que mas puedan ayudarte
__________________
Manual de ASP Avanzado ;-)
  #22 (permalink)  
Antiguo 27/12/2005, 17:20
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 19 años, 6 meses
Puntos: 3
Lo que debes hacer es lo siguiente :

En la pagina con el formulario procedes a validar el login y la password; en donde realizas la validacion de tal manera que si esta informacion es la correcta, extraes el codigo de pais

Algo asi.. La pagina se llama login.asp
<% OPTION EXPLICIT
Server.ScriptTimeout = 90
Response.Buffer = true
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 2
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
%>
<html>
<head>
<title>ACCESS CONTROL</title>
<script language="JavaScript" src="js/cvc_usuario.js"></script>
</head>
<%
Dim mensaje,usuario,pass,ret,codpais
Dim Conn,rs,sql

If ( Request("usr") = "" ) Then
session("login") = 0
else
usuario = Request("usr")
pass = Request("pwd")
Valida_Usuario usuario, pass
end if

%>
Defines un form
%>
<FORM METHOD="POST" NAME="loginFrm" ACTION="login.asp">

<%
Sub Valida_Usuario( Byref w_usr, Byref w_pwd )
'----------------------

if InStr(w_usr,"'") or InStr(w_usr,"""") then
session("intentos") = session("intentos") + 1
mensaje = "INVALID USERNAME"
else
if InStr(w_pwd,"'") then
session("intentos") = session("intentos") + 1
mensaje = "INVALID PASSWORD"
else
mensaje = ""
connect()
ejecuta ("spa_existe_login '" & w_usr & "'" & ",'" & w_pwd & "'")
ret = rs("RETORNO")

if ret = 1 then
session("intentos") = session("intentos") + 1
mensaje = "WRONG USERNAME OR PASSWORD"
else
codpais = rs("CODPAIS")
mensaje = ""
session("intentos") = 0
session("login") = ucase(w_usr)
session("codpais") = codpais

response.redirect "/xxxx/cv_prom.asp"

end if
end if
end if
' disconnect()

End sub
%>

Aca llamo a rutinas de connect y ejecuta que estan en una pagina que tengo que centraliza las operaciones con el sql... tu cambiala por el connectstring correspondiente y el procedimiento almacenado lo cambias por el select directo en donde extraes el codpais que corresponda para el login y password

Luego en la otra pagina llamada cv.asp (por dar un nombre)

Ya que tienes validado el login con su password solo necesitas usar la variable de sesion("codpais") que ya esta inicializada; luego solo haces un solo select parametrico en donde seleccionas todos los CV o PROMOTORAS en donde la informacion corresponda al codpais que tienes en tu variable de sesion y armas tu tabla html con la salida de esta informacion.
Se me olvidó que debes de verificar dependiendo la opcion si es CV o PROM...
asi seria mas o menos

Espero se entienda
  #23 (permalink)  
Antiguo 28/12/2005, 19:39
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
bueo yo lo haria mas secillo como ya explique

hay error?

porque hacer muchos sql para un solo resultados co un where?
__________________
JuanRa Pérez
San Salvador, El Salvador
  #24 (permalink)  
Antiguo 29/12/2005, 15:56
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 19 años, 5 meses
Puntos: 0
problema resuelto

Ya resolvi el problema simplemente pase una variable session y hace todo perfecto.
  #25 (permalink)  
Antiguo 30/12/2005, 17:51
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
felicidades
__________________
JuanRa Pérez
San Salvador, El Salvador
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 12:45.