Problemas include

Deseo integrar mi web con un foro yab y para ello utilizo el include("propiedades/yab/index.php"); ¿Con el fin de que el foro se mueva dentro de mi página pero me genera los siguientes errores cuando llamo la página que incluye el foro yab?, si abro el foro de manera independiente trabaja sin problemas.
Agradezco cualquier ayuda.
Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\webcely\basedatos\conectar.php:26) in c:\apache\htdocs\webcely\propiedades\yab\index.php on line 78
Warning: Cannot send session cookie - headers already sent by (output started at c:\apache\htdocs\webcely\basedatos\conectar.php:26) in c:\apache\htdocs\webcely\propiedades\yab\index.php on line 83
Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\webcely\basedatos\conectar.php:26) in c:\apache\htdocs\webcely\propiedades\yab\Sources\Subs.php on line 155
A CONTINUACION INDICO EL ARCHIVO Y LA LINEA QUE GENERA EL ERROR
yab/index.php linea de error 78
76 if ($modSettings['enableCompressedOutput'] && preg_match('/gzip/i', getEnv('HTTP_ACCEPT_ENCODING')) && @ini_get('zlib.output_compression') != '1')
77 ob_start("ob_gzhandler");
78 else
ob_start();
yab/index.php linea de error 83
83 session_start();
sources/subs.php lineas de error
155 header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
156 header('Last-Modified: ' . Gmdate("D, d M Y H:i:s") . ' GMT');
Conectar.php: solo incluye los datos básicos de conexión a la base de datos.user pass y server que utilizo en mi página y no tiene que ver con el foro.
Cualquier información me la pueden enviar a [email protected]
Respuesta
1
Lo que que querés hacer no se puede porque el foro Yab está programado de tal manera que ciertos "pedazos" de código deben enviarse antes que cualquier cabecera HTML... seguramente el include() lo estas haciendo luego de alguna etiqueta HTML y por eso te tira ese error. No hay forma que metas dentro de tu web el foro, no al menos mediante PHP. Supongo que utilizando marcos (FRAMES) no tendrías que tener problemas (eso te conviene preguntarme mejor en el tablón de HTML de TodoExpertos).

2 respuestas más de otros expertos

Respuesta
1
Este error se produce porque la función ob_start escribe en los headers de la página, al igual que con las funciones de establecimiento de sesiones y cookies. Esto significa que antes de llamar a ese tipo de funciones no se puede haber generado ninguna salida, es decir, que no puede haber código html ni echos php. P.ej:
<?
1 ob_start();
2
3 echo "Contenido de la página";
?>
Esto no genera errores: se envían los headers y luego se ejecuta un echo.
<?
1 echo "Contenido de la página";
2
3 ob_start();
?>
Esto genera un error del estilo "Warning: Cannot add header information - headers already sent by (output started at loqsea.php:1) in loqsea.php on line 3".
El error te indica el archivo dónde se han iniciado los headers (loqsea.php) y la línea (1), además de dónde se ha intentado volver a enviarlos (loqsea.php línea 3).
Probablemente en la línea 26 de conectar.php habrá un echo. Puedes quitarlo o bien ejecutar el código de conexión después de que se hayan enviado los headers, dentro del código de yab.
Espero que te sirva. Saludos,
iNphYx
Respuesta
1
Antes de hacer el include modificaras los headers de la página, que se suelen hacer arriba del todo y cuando haces el include se vuelven a modificar, por lo que el error te dice que los headers no se pueden modificar ya que ya han sido enviados, es decir php solo acepta que se envíen los headers de una sola vez, si no es así para el se están volviendo a modificar y eso le da error:
Una posible solución es la siguiente:
Incluir el foro mediante un iframe, esta solución es la más rápida.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas