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

Variables session

Estas en el tema de Variables session en el foro de ASP Clásico en Foros del Web. Tengo una pagina en ASP q genera una variable session cuando se accede a la página, dependiendo de un valor que tomo de un request.querystring, ...
  #1 (permalink)  
Antiguo 23/07/2005, 14:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 20
Antigüedad: 21 años
Puntos: 0
Variables session

Tengo una pagina en ASP q genera una variable session cuando se accede a la página, dependiendo de un valor que tomo de un request.querystring, para diferenciar según desde donde haya sido llamada. Concretamente la variable session guarda un nombre que utilizo en esa página cuando se llama a si misma para generar los mensajes q pertenezcan a tal nombre.
Es decir, una página que recibe el valor "nombre" y luego se llama a si misma conservando el valor nombre en una variable session y así poder seguir utilizandolo.

Lo que me sucede es que ese valor se pierde cuando la página se llama a sí misma un par de veces y no entiendo porqué si la sesion no se acaba en ningún momento.

En el codigo hago esto para no machacar el valor:

----
if request.QueryString("gtr") <> "" then
grupo = request.querystring("gtr")
end if
------
gracias y un saludo
  #2 (permalink)  
Antiguo 23/07/2005, 23:26
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 4 meses
Puntos: 3
mmmm... y no puedes poner el código donde creas la session y haces todo eso que nos dices.. pero no vayas a poner TODA EL CODIGO DE LA PÁGINA AH! jejeje
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #3 (permalink)  
Antiguo 24/07/2005, 01:18
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
no es lógico que pierda el valor después de llamarla "un par de veces". Me apunto a lo que dice Mamon, menos una cosa. Pon el código. TODO EL CÓDIGO. Peeeeero, coméntalo un poco para no volvernos locos.
  #4 (permalink)  
Antiguo 24/07/2005, 01:21
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 4 meses
Puntos: 3
ah claro.. pero que no nos ponga código demás.. osea hay gente que pone HTML, JavaScript y cosas que no tienen nada q ver con ésto... y la verdad es que me da flojera encontrar donde está el código que en verdad deberíamos ver
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #5 (permalink)  
Antiguo 25/07/2005, 10:56
 
Fecha de Ingreso: mayo-2004
Mensajes: 20
Antigüedad: 21 años
Puntos: 0
codigo "sintetizado"

Pensaba q era algo conocido, pero ya veo q va a ver q darle mas vueltas. A ver como hago pa no pegar codigo inutil.

Antes de nada, la variable llega bien, luego la pagina produce una lista de mensajes, q seria el grupo de mensajes q tal variable designa. De esta manera se hace la consulta a una base de datos:

strQuery ="SELECT * FROM mens_gtr where gtr='" & request.querystring("gtr") & "'"

Aqui no he utilizado la variable session porque quiero asegurarme de momento, de mostrar los mensajes q quiero, y luego con esto muestro la variable session:

'asigno antes como normalmente
session("grupo") = request.QueryString("gtr")

'y la muestro en otra parte así
<% =session("grupo") %>

---
Ahora os pego el codigo (lo pille de un sitio q no recuerdo ahora), donde se crea una tabla, donde aparecen una lista de mensajes pa q pinches y leas el q quieras:

Sub Build_Table
Dim strTable, num, field(), fieldname(5), sort(3)
session("grupo") = request.QueryString("gtr")
fieldname(0) = "<span style='margin-left:10px'>Fecha:</span>"
fieldname(1) = "<span style='margin-left:10px'>Nombre:</span>"
fieldname(2) = "<span style='margin-left:10px'>Correo electrónico:</span>"
fieldname(3) = "<span style='margin-left:10px'>Asunto:</span>"
fieldname(4) = "<span style='margin-left:10px'>Mensaje:</span>"
fieldname(5) = "<span style='margin-left:10px'>GTR:</span>"
num=0
strTable = "<TR>"
If rst.EOF Then
response.Write "<TR><TD Align='left' VAlign='middle' ColSpan=3>No hay entradas en el foro</TD></TR>"
ElseIf intMID <> "" Then
REDIM field(6)
field(0) = rst("fecha")
field(1) = rst("autor")
field(2) = rst("Email")
field(3) = rst("asunto")
field(4) = rst("contenido")
field(5) = rst("gtr")
Dim cell_left, cell_right, row_break
cell_left = "<TD ColSpan=2 ALIGN=LEFT VALIGN=TOP>"
cell_right = "<TR><TD align='left' width=140px>"
row_break = "<TR><TD height=1 Colspan=3></TD></TR>"
For num = 0 to 5
strTable = strTable & cell_right & "<B>" & fieldname(num) & "</B></FONT></TD>"
If num = 2 then
strTable = strTable & cell_left & "<A HREF=""" & "mailto:" & field(num) & """>" & field(num) & "</A></TD></TR>" & row_break
Else
strTable = strTable & cell_left & field(num) & "</TD></TR>" & row_break
End If

Next
num=0
Else
sort(0) = "ordenar por fecha"
sort(1) = "ordenar por autor"
sort(2) = "ordenar por asunto"
strTable = strTable & "<TD WIDTH=150 Height='30' Align='LEFT' Valign='TOP'><INPUT NAME=sort value=""" & sort(0) & """ type=submit style='margin-left:10px'></TD>"
For num = 1 to 2
strTable = strTable & "<TD WIDTH=150 Height='30' Align='LEFT' Valign='TOP'><INPUT NAME=sort value=""" & sort(num) & """ type=submit style='margin-left:30px'></TD>"
Next
num = 0
strTable = strTable & "</TR><TR><TD HEIGHT='1' Colspan='3'></TD></TR>"
count = 1

'Aqui se crean lo q serán los enlaces q hará q la página se llame a si misma para generar los mensajes
'he puesto al final & "&gtr=" & request.QueryString("gtr") pa pasar la variable por la direccion
'pero no sirve siempre pq luego tengo un boton para ir de un mensaje a otro y no se como pasar desde
'el boton la variable, igual, queria saber pq fallaba esto.

Do UNTIL rst.EOF
strTable = strTable & "<TR>"
strTable = strTable & "<TD ALIGN=LEFT VALIGN=TOP><span style='margin-left:10px; font-family:Arial, Helvetica, sans-serif; font-size:13px'>" & rst("fecha") & "</span></TD>"
strTable = strTable & "<TD ALIGN=LEFT VALIGN=TOP><span style='margin-left:40px'><A HREF=""" & "soc_leer.asp?message=" & rst("id") & "&count=" & count & "&gtr=" & request.QueryString("gtr") & """>" & rst("autor") & "</A></span></TD>"
strTable = strTable & "<TD ALIGN=LEFT VALIGN=TOP><span style='margin-left:40px'><A HREF=""" & "soc_leer.asp?message=" & rst("id") & "&count=" & count & "&gtr=" & request.QueryString("gtr") & """>" & rst("asunto") & "</A></span></TD>"
num = 0
strTable = strTable & "</TR><TR><TD HEIGHT=1 Colspan=3></TD></TR>" 'break the row
rst.MoveNext
count = count + 1
Loop
End If
response.write strTable
End Sub
--------------

Eso es todo, y lo q pasa es q donde pongo el
<% =session("grupo") %>
cuando la página se llama a si misma 2 veces, ya no sale nada.

Si hace falta q pegue algo más de codigo y q explique mejor alguna parte decidlo, muchas gracias
  #6 (permalink)  
Antiguo 27/07/2005, 12:45
 
Fecha de Ingreso: mayo-2004
Mensajes: 20
Antigüedad: 21 años
Puntos: 0
resuelto

Ya está resuelto, era un error en el codigo, perdonen la molestia.
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 07:48.