Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2010, 01:19
raulbotella
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 18 años
Puntos: 0
Problema con sessiones

Buenas, espero que me puedan ayudar o aconsejar.

El problema es que estoy utilizando sessiones en ASP para una web en la que voy añadiendo productos a una sección, muy similar a como si fuera un carrito de compra.

Al inicio de la página tengo:
Código:
if len(session("pres")) = 0 then
  session("pres") = "@;@;;;"
  session("nObjetos") = cInt(0)
end if
Se supone que ahi la inicializo si no existe la variable, inicializo dos una que llevara unicamente un contador (nObjetos) y la otra que lleva una cadena de objetos definidos de manera:

@;@;;;dato1@;dato2@;dato3@;;;

El problema es que a veces funciona bien y a veces no...y el problema esta en el contador, limito a que sea un máximo de tres productos, los productos los inserto y elimino con ajax (jquery).

Los códigos para eliminar y crear son:
INSERTAR
Código:
cadena = session("pres")

referencia = rq("ref")
imagen = rq("url")
tipo = rq("tipo")
poblacion = rq("pob")
ncadena = referencia & "@;" & imagen & "@;" & tipo & "@;" & poblacion & "@;;;"
cadena = cadena & ncadena
if cInt(session("nInmuebles")) < 3 then
	session("pres") = cadena
	session("nObjetos") = cInt(session("nInmuebles")) + 1
	response.Write "OK_" & session("nObjetos")
else
	response.Write "KO_" & session("nObjetos")
end if
ELIMINAR
Código:
dim intPos, cadena, ncadena, intUltPos, linea,ref, registro
	cadena = session("prescripciones")
	ref = rf("referencia")
	
	intPos = instr(cadena,ref)
	if intPos > 0 then
		
		ncadena = mid(cadena,intPos,len(cadena))
		intUltPos = instr(nCadena,"@;;;")
		
		registro = mid(ncadena,1,intUltPos+3)
		
		session("pres") = Replace(session("pres"), registro, "")
		session("nObjetos") = cInt(session("nObjetos")) - 1
		response.Write session("nObjetos")
	end if
Ambas páginas mando en el onSucess OK o un KO, en caso de añadir producto mando OK_nObjetos o KO_nObjetos para actualizar el número de items de la tabla de productos.

He leido que es mejor hacerlo con un webService para recoger los valores de las sessiones, es esto cierto?

El problema es que a veces no me actuliza la variable de sesion, es decir, si nObjetos es 2 le doy a añadir inmueble y aparentemente lo añade pero si actualizo la página no esta actualizado.

Lo que me descentra un poco es que a veces funciona bien y a veces se vuelve un poco loco... que no añade inmueble, que añade mas de los que deberia, etc...

Espero que sepan donde esta el error

saludos!!!