Foros del Web » Programando para Internet » PHP »

Ayuda, Problema de Sessions

Estas en el tema de Ayuda, Problema de Sessions en el foro de PHP en Foros del Web. hola amigos, estoy creando un carrito de compras, y estoy utlizando las sesiones para guardar los productos pero me he encontrado con el sigueinte error: ...
  #1 (permalink)  
Antiguo 10/01/2004, 13:55
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 193
Antigüedad: 22 años, 3 meses
Puntos: 0
Pregunta Ayuda, Problema de Sessions

hola amigos, estoy creando un carrito de compras, y estoy utlizando las sesiones para guardar los productos pero me he encontrado con el sigueinte error:

Cannot send session cache limiter - headers already sent (output started at /web/vhosts/zoname/shop/categorias.php:33) in /web/vhosts/zoname/shop/cargar.php on line 11

alguien podria explicarme que sucede? supongo qu e es algo de que ya se enviaron las cookies y que no quedna más espacio, pero no se ocmo solucionarlo, saludos! y desde ya muchas gracias!
  #2 (permalink)  
Antiguo 10/01/2004, 14:55
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema es que antes del session_start() no puedes enviar nada al navegador. No puedes mostrar ni HTML, ni hacer echo, ni nada (lo mismo pasa con header()).

El mensaje de error te dice donde comenzaste a enviar la salida al navegador: categorias.php:33. Es decir, en la linea 33 de categorias.php. Supongo que sera un include, asi que asegurate que detras del ultimo ?> no haya lineas vacias ni caracteres en blanco.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 10/01/2004, 15:40
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 193
Antigüedad: 22 años, 3 meses
Puntos: 0
muchísimas gracias! me ha sacado de un aprieto, no tenia idea de que funcionaban igual que lso headers... no me di cuenta por que mensionaban algo de Chache y eso y pense que venia por otro lado el problema...
ah, y disuculpas, solo tengo un pequeño prblemita más, pero que me esta dando error auqneu funciona:
una vez q tengo cargados lso elementos que el usuario desea comprar, si decide borrarrlos pense q lo solucionaria con:

Código PHP:
if($vaciar==si){
$_SESSION['itemsEnCesta']="";
}else{
session_register('itemsEnCesta');

pero esto, leugo de borrarme los articulos, y al hacer un foreach que recorre el array borrado, me da el siguiente error:

Warning: Invalid argument supplied for foreach() in /www/docs/zonamedica.com/public_html/shop/check-out.php on line 43

alguien tiene diea de como vaciar ItemsEnCesta de manera qu eno me de este error? gracias!
  #4 (permalink)  
Antiguo 10/01/2004, 15:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues simplemente define esa variable de sesión (que en el fondo lleva tu array de la cesta) como un array vacio .. no como una caneda vacía que es como lo hacias:

Código PHP:
if($vaciar==si){
$_SESSION['itemsEnCesta']=array();
}else{
$_SESSION['itemsEnCesta']=tu array de la cesta;

Y .. no mezcles uso de $_SESSION (arrays superglobales) con session_register() .. usa completamente los arrays superglobales como te indico en el ejemplo .. asígna tu $_SESSION['itemsEnCesta'] a tu array que uses para la cesta o en general "registra" las variables de sesión así. (en las FAQ's de este foro tienes un breve ejemplo)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 10/01/2004, 15:52
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Es que eso del cache son cabeceras que tiene que enviar. Cabeceras=header, pr eso se comportan igual. Y lo mismo pasa con setcookie(). Las cookies tambien se mandan al navegador mediante cabeceras.

Y sobre lo del foreach, es que necesita que el parametro sea un array. Y "" no es un array. Para solucionarlo lo que tienes que hacer es asignarle un array vacio, con:
Código PHP:
$_SESSION['itemsEnCesta']=array(); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 10/01/2004, 18:52
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 193
Antigüedad: 22 años, 3 meses
Puntos: 0
muchísimas gracias amigos! les debo una!
__________________
happy coding!:arriba:
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 05:21.