session_start(): Cannot send session cache limiter - headers already sent

Iniciado por Casidiablo, 6 Noviembre 2007, 17:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Casidiablo

Hola...

Me gustaría que alguien me aclarara el siguiente error que me saca un programa que estoy haciendo en PHP:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\manuel\index.php:1) in C:\xampp\htdocs\manuel\index.php on line 3

Cierto es que si buscas en Google encuentras cientas de páginas donde ya se ha tratado el tema. Incluso aquí mismo se ha tratado... pero antes de que digan cualquier cosa, me gustaría que se fijen en el código que tengo:

El archivo es index.php, y solo tiene:

Código (php) [Seleccionar]
<?php
session_name("inmobiliaria");
session_start();
include("funciones.php");
?>


Ahí me saca el error. Lo más HIJUEPUTA de todo (perdonen la expresión pero estoy demasiado molesto), es que tengo otro archivo con lo mismo, y no arroja el error:

El otro archivo es temp.php y tiene lo mismo:

Código (php) [Seleccionar]
<?php
session_name("inmobiliaria");
session_start();
include("funciones.php");
?>


Ahora me pregunto... ¿cómo putas es posible que si son iguales los archivos, en uno saque error y en el otro no?

Gracias por leer.

дٳŦ٭

mm

Código (php) [Seleccionar]
<?php
session_start
();
session_name("inmobiliaria");
include(
"funciones.php");
?>


Suerte


Con sangre andaluza :)


Red Mx

es algo del php se pone fresa recien tenia una web algo trabajada se me ocurrio montar el appserv en vista para trabajar de forma local y veras mil errores de esos cuando windows xp no me los marcaba con la misma version de app 2.4.x

ahor apor ahi lei que dependia de la codificacion del archivo que si si era ANSI algo asi como block de notas

unicode , etc

lei que lo recomendable era UTF-8 .


fue lo que lei y por lo que se dreamweaver guarda en esa codificacion ahora que vergisa me puso php , para los que se preguntan mejor volvi a la maquina con xp y no me meti en mas pedos.


Desarrollar Malware Es Causa De Cancer...

Casidiablo

Cita de: Ing_Amc en  6 Noviembre 2007, 18:46 PM
mm

Código (php) [Seleccionar]
<?php
session_start
();
session_name("inmobiliaria");
include(
"funciones.php");
?>


Suerte

Ya lo había intentado...

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\manuel\index.php:1) in C:\xampp\htdocs\manuel\index.php on line 2

Gracias igualmente. Sigo esperando ayudas.

SirLanceCC

Yo también tuve muchas veces est problema y encontré el por qué. Son los malos editores de texto. Explicaré...

Crearé con el bloc de notas un archivos de texto con lo siguiente:
<?php print "Hola" ?>
Lo guardo:
Citar
Nombre: pagina.php
Tipo: Todos los archivos
Codificación: ANSI

Ahora le doy guardar como:
Citar
Nombre: paginautf.php
Tipo: Todos los archivos
Codificación: UTF-8

En teoría los dos archivos deberían ser exactamente iguales, sobre todo por que no utilicé ningún caracter especial, pero al abrirlos con un editor hexadecimal descubrimos lo siguiente:
Cita de: pagina.php<?php print "Hola" ?>
Cita de: paginautf.php<?php print "Hola" ?>

¡Que vemos! que al inicio del documento hay 3 bytes con datos que son utilizados por el bloc de notas para determinar la codificación del texto, pero que son enviados al navegador antes de que se procese la etiqueta <?php y causan nuestro error...

Así que
Citarheaders already sent (output started at C:\xampp\htdocs\manuel\index.php:1)
probablemente se refiera a esos tres bytes.

Consejo no uses editores tan malhechos como el bloc de notas de windows... ;)

Casidiablo

-| Sir_Lance |-, muchas gracias... la cosa iba por ahí. Cuando funcionaba estaba usando Kate en openSuse, y vaya sorpresa me llevo cuando en Dreamweaver ya no funcionaba... ufff, en fin. De nuevo muchas gracias!

Red Mx

Desarrollar Malware Es Causa De Cancer...

SirLanceCC

#7
No por eso hay que dejar de usar utf-8 que es más universal.
Al menos en dreamweaver cuando guardas el documento como utf-8 NO guarda esos bytes extraños.
En los editores en linux no he probado pero tampoco se deberían de guardar esos caracteres extraños.

Según el estandar no tienen por que estar ahí...
Cita de: WikipediaAlthough not part of the standard, many Windows programs (including Windows Notepad) use the byte sequence EF BB BF at the beginning of a file to indicate that the file is encoded using UTF-8. This is the Byte Order Mark U+FEFF encoded in UTF-8, which appears as the ISO-8859-1 characters "" in most text editors and web browsers not prepared to handle UTF-8.

http://en.wikipedia.org/wiki/UTF-8

EDITO: Los caracteres extraños si tienen un motivo de exixtencia, pero al hacer una web es muy molesto que aparezcan... y lo principal es que no son parte del estándar...