
06/06/2007, 11:17
|
| | Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 19 años, 2 meses Puntos: 10 | |
Re: problemas con las sesiones Eso es porque mandas al navegador datos ANTES de enviar la cabecera para almacenar la cookie que guarda la sesión al navegador, así que no puede iniciarla.
La forma más fácil para lograr un resultado óptimo (mezclar headers y otras funciones por medio de echos sin problemas) es utilizar las funciones OB (Output Buffer).
Al principio (1ª línea) del código debes poner ob_start();
y en la última ob_end_flush();
Estas funciones hacen que los datos se almacenen en un búffer y así se logran "retardar" los datos para poder mandar las cabeceras antes.
Si necesitas mandar un dato en un cierto momento, puedes utilizar ob_flush(); pero asegúrate de haber mandado ya todas las cabeceras, porque a partir de ahí ya habrás mandado datos al navegador fuera del búffer.
A veces estas funciones son interesantes incluso para modificar una página cargada por ciertos métodos a los que no puedes acceder directamente y quieras modificar contenidos. Puedes utilizar $variable = ob_get_contents(); y a partir de ese momento $variable contendrá todo lo que habría salido por cualquier echo(), printf(), u otro.
Después de esta "charla" sobre el búffer de salida de PHP, te digo que lo más cómodo sería utilizar ob_start(); al comienzo (1ª línea) y ob_end_flush(); en la última.
Un saludo! |