Este es con diferencia el error más común a la hora de subir nuestra página a un servidor real, y en realidad es muy sencillo de solucionar si nos fijamos un poco.
El error viene a ser algo como esto:
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at C:wampwwwwebindex.php:6) in C:wampwwwwebConnectionsconexion.php on line 2
El asunto es el siguiente, hay algún espacio de HTML antes de que se lance, o bien el session_start o bien algún header que nos redireccione a alguna página de la Web.
Cuando digo espacio HTML me refiero a cosas como esta:
La linea 4 de este archivo de conexiones ES un espacio en blanco de HTML, aunque parezca que no lo es. Hay que eliminar la línea 4.
Otro ejemplo:
Siendo este el final de nuestro archivo de funciones.php, las dos últimas líneas SON HTML, es decir, son espacios en blanco que debemos eliminar, porque seguramente lancemos un header para salar a otra página justo después de llamar al archivo de funciones.
Estos dos son los sitios habituales, pero el propio error os dirá donde se está produciendo ese error.
¿Por qué este error?… PHP no permite que se saque nada por pantalla de dispositivo antes de hacer un header, y tampoco lo permite si vamos a inicializar la sesiones con el session_start()
¿Por qué en local no me sale y cuando lo subo al servidor si?. Habitualmente la configuración de nuestro XAMPP o WAMP en local es mucho menos restrictiva que lo que puede ser un servidor Web real, recordemos que nuestro WAMP local se utiliza como entorno de desarrollo con lo que es mucho más permisivo con cierto tipo de errores.
Ante la tesitura de que no encontráis nada que haga que salga ese error, podéis agregar una @ antes del session_start, aunque no lo recomiendo pues solo estáis evitando que salga el aviso, pero realmente no estáis solucionando el problema. siempre es conveniente dejar el código todo lo limpio que se pueda, por supuesto!.
Espero haberos arrojado un poco de luz con este tema!.
Saludos
disculpen mi ignorancia, en que archivo puedo encontrar este error? asi lo corrijo. desde ya muchas gracias
El error no tiene por qué salirte. en caso de que te salga es en esa página donde estés donde estará el problema y con esta explicación lo puedes solucionar.
Saludos
Gracias, salvaste mi vida!
Gracias a ti. Saludos!
Muy buena respuesta, muy utili gracias
excelente aporte, muy facil y eficiente la solucion
gracias por la solucion, puedo asegurar que me funciono tenia unos espacios en blanco antes del session_start()
Estupendo entonces. Saludos
busque mucho como un loco, de arriba a abajo, e incluso utilice una linea unica: en la 1 y seguia.
lo hice mas simple: y seguia.
lo puse en el archivo de conexion y nada..
hay que entender, que no todos los hosting web funcionan igual, donde acceso.php en algunos lo puedes meter como un icludes, en otros servicios, da error (quien haya seguido los cursos de jorge sabra de que hablo).
encontre una solucion, para todos aquellos que aun les de el problema, poner una simple @ delante del sesion star… asi:
y listo ;D
yo he sido alumno de jorge, aprendi tanto que hoy por hoy, soy support de una empresa de hosting 😀 no doy publicidad, por si acaso.
Jajaj, si, poner la @ deltante evita que se muestre el error, es una alternativa cuando el hosting se pone muy pesado.
Genial que tengas un gran trabajo!
Saludos
Gracias maestro me fue útil esta información