Foros del Web » Programando para Internet » PHP »

Duda sobre sesiones, ¿donde colocar session_start()?

Estas en el tema de Duda sobre sesiones, ¿donde colocar session_start()? en el foro de PHP en Foros del Web. Hola. Si quiero que no me salga el mensaje de error: Warning: session_register(): Cannot send session cookie - headers already sent by... (supongo que ya ...
  #1 (permalink)  
Antiguo 24/09/2004, 06:17
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 0
Duda sobre sesiones, ¿donde colocar session_start()?

Hola. Si quiero que no me salga el mensaje de error: Warning: session_register(): Cannot send session cookie - headers already sent by... (supongo que ya lo conoceis) tengo que colocar session_start() y las session_register al principio de la pagina. ¿Esto por que es? ¿Pasa algo porque esto tenga que ser asi?

Gracias.
  #2 (permalink)  
Antiguo 24/09/2004, 07:17
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Es por la forma que funciona HTTP, el protocolo de la web. Cuando el navegador envia una peticion al servidor, envia unas cabeceras, el servidor devuelve otras cabeceras mas el HTML de la pagina (o el HTML generado por el script PHP). El orden es fijo, primero todas las cabeceras y luego el contenido. Cuando ejecutas un script PHP, puedes enviar cabeceras de varias formas: directamente con header(), o con setcookie() y session_start(), ya que las cookies se crean con cabeceras (session_start() solo si propagas el SID por cookies). Segun va generando salida el script PHP, el servidor web generalmente la va enviando al navegador. Asi que si envias salida antes de enviar la cabeceras** con PHP, el orden que comente antes se rompe y las cabeceras no son enviadas. Por eso debes poner el codigo PHP que genera cabeceras antes del codigo que genera salida.

Saludos.

** generalmente, ya que se puede configurar PHP y el servidor web para que no envie la salida hasta que finalice el script. En este caso, el codigo PHP que genera cabeceras puede estar en cualquier punto.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 04:15.