Foros del Web » Programando para Internet » PHP »

Problemas con el session_start en PHP5

Estas en el tema de Problemas con el session_start en PHP5 en el foro de PHP en Foros del Web. Hola, tengo un sitio web que utiliza sesiones (un comercio electrónico, carrito de la compra...) y hasta ahora no he tenido ningún problema. Pero ayer ...
  #1 (permalink)  
Antiguo 11/08/2004, 14:34
 
Fecha de Ingreso: noviembre-2003
Ubicación: Alicante
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
Problemas con el session_start en PHP5

Hola,

tengo un sitio web que utiliza sesiones (un comercio electrónico, carrito de la compra...) y hasta ahora no he tenido ningún problema.

Pero ayer instalé localmente el PHP 5, y ahora, a parte de que siempre me indica que el carro está vacío, me dice esto:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\__server__\index.php:14) in c:\__server__\index.php on line 38

En la línea 38 está el "session_start()", pero es que en la línea 14 (si es eso lo que indica el primer 14) no hay nada que lo contradiga, es decir, sólo hay unas etiquetas META (en concreto description, aunque no creo que venga al caso).

La línea 38 es la primera (y única en esa página) que indica el session_start(), el cual luego utilizo en todas las páginas.

¿Alguna idea de cuál es el problema? Lo agradeceré enormemente.

Un saludo,
  #2 (permalink)  
Antiguo 11/08/2004, 14:55
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 13 años, 9 meses
Puntos: 0
mmmm a mi me paso algo similar me marcaba lo mismo pero era por que tenia un script mas arriba del session_start(); pero el script lo tenia muy separado no se si sea lo mismo, junta todas la lineas de codigo no dejes espacios.
  #3 (permalink)  
Antiguo 11/08/2004, 15:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
En la línea 38 está el "session_start()", pero es que en la línea 14 (si es eso lo que indica el primer 14) no hay nada que lo contradiga, es decir, sólo hay unas etiquetas META (en concreto description, aunque no creo que venga al caso).
Cuando dice el mensaje de error "Output started" se refiere a eso mismo .. a tus <META> y demás "salida" que estás enviando al cliente (navegador) antes de tu session_start() ...

Piensa que PHP se ejecuta primero y lo que "resulte" será la salida a generar ... no pienses en "HTML con incrustraciones de PHP" como así estás diseñando tus scripts.

Es decir, la estructura de tus páginas debe quedar:

Código PHP:
<?
sesssion_start
();
// etc ...
?>
<html>
<head>
<meta .....>
</head>
<body>
<?
echo "Si se requiere ..."
?>
</body>
</html>
Ese mismo problema de "Output started" te lo va a dar también el uso de cookies (setcookie()) y cabeceras HTTP (header()). Y no es própio de PHP5 sino de cualquier versión de PHP.

Un saludo,
  #4 (permalink)  
Antiguo 11/08/2004, 16:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: Alicante
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
Hola,

gracias por las respuestas. En efecto era lo que decía Cluster, poniendolo primero el problema se soluciona. Pero puedo asegurar que me empezó a dar el warning con PHP5, con la anterior funcionaba y no daba ese warning

Saludos y gracias de nuevo
  #5 (permalink)  
Antiguo 11/08/2004, 18:12
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
El hecho de que no te dé el mensaje de error no quiere decir que no se esté produciendo el error. Seguramente tu php anterior estaba configurado para no mostrar mensajes de error como warning o notice. Y este nuevo php también lo puedes configurar para que funcione igual... pero recuerda que simplemente está ocultando el error y no solucinándolo... y en etapa de desarrollo los mensajes del parser son una gran ayuda... Y tenerlos desactivados cuando ya los tengas listos porque esos mensajes de error suelen mostrar nombres de archivos, de tablas, campos... rutas completas de nuestro servidor... y al final puede terminar siendo perjudicial para ti mismo.

Saludos
  #6 (permalink)  
Antiguo 11/08/2004, 18:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: Alicante
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
No no, estaba configurado correctamente. Me mostraba otros warning (sólo uno). Es decir, eso sé configurarlo, el tema de los errores. En fin, ya está todo solucionado y he aprendido un poquito más, que es lo importante

Gracias a todos y un saludo
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:12.