Ver Mensaje Individual
  #68 (permalink)  
Antiguo 04/04/2005, 09:27
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Cita:
Iniciado por yoseman
Respecto de los problemas de Headers already sents, se trata de un problema cómo dije de cabeceras ya enviadas, y se produce, porque NO SE TIENE QUE ENVIAR NINGUN CÓDIGO NI CARACTER NI NADA al navegador antes de este script.

Es por el uso de sesiones, cuando usamos sesiones(este caso) estamos obligando a que se envien unas cabeceras especiales con una serie de datos, pero el hecho de escribir algo antes de iniciar sesión implica que ya se envien esas cabeceras y por eso da error.

Pero hay una solución, y es precisamente la que proponía que lo que hace es crear una especie de buffer de todo lo que se manda al navegador, y se activa encabezando la página con:
Código PHP:
<?
ob_start
();
?>
Y terminando con
Código PHP:
ob_en_flush(); 
De esta forma nos aseguramos que php guarda en ése buffer hasta que vea la instrucción de vaciar el buffer todo el contenido y por eso aunque escribamos antes de iniciar sesión, tanto da, ya que en realidad php no lo manda al navegador.

No sé si me he explicado bien, pero es más o menos eso.

Salu2 ;)

Se trata de eso más o menos, pero además hay que tener en cuenta toda la página, porque si el script éste lo incluyes dentro de otro que ya había enviado algo al navegador igual fallará y dará error.
Entonces de lo que se trata es de poner esas dos funcioncillas de buffers que propongo(no sé si habrían otras opciones) al principio del todo, si nuestro script está dentro de otro, pues al principio de la que lo incluye, y luego al final del pie del página.

Lo digo porque ya van 3 personas que me dicen que no les funciona, y claro no les funcionará si no lo ponen al principio del todo.

Conclusión, si nuestro script encabeza la página y no hay nada antes perfecto, y si hay algo antes, hay que situar estas dos funcioncillas, al principio de nada en nuestra página global...

Lo siento si no me expliqué bien, pero es eso más o menos.

Salu2 ;)
__________________
[+]
[+]