Foros del Web » Programando para Internet » PHP »

codigos en includes

Estas en el tema de codigos en includes en el foro de PHP en Foros del Web. Hola amigos: Tengo un problema con los includes... necesito utilizar un include dentro de una página que ya está incluida en otra. Es decir, tengo ...
  #1 (permalink)  
Antiguo 31/10/2003, 05:51
Avatar de korbendallastc  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 226
Antigüedad: 21 años, 2 meses
Puntos: 0
codigos en includes

Hola amigos:

Tengo un problema con los includes... necesito utilizar un include dentro de una página que ya está incluida en otra. Es decir, tengo un archivo principal, que tiene un include a una página b y esa página b tiene un include a una página c.

Me da error, el típico error de que las cabeceras has sido enviadas. Lo he probado sin incluir c (poniendo el código php de la página c directamente en b), pero tampoco funciona, me de el mismo error. Finalmente, si accedo directamente al archivo b (que ahora contiene el código php que habia en c) funciona correctamente. Más claro: he observado que cierto código (concretamente manejo de sesiones) no funciona si se incluye en otra página a través de include.


¿Como puedo lograr que funcione? Como digo, necesito que el código de c esté en la página b (directamente o a través de incluir a c desde b) y que funcione entrando desde la página principal, la que incluye a b.

Espero que me entendais... no se si me explico...

Muchos saludos!!
__________________
  #2 (permalink)  
Antiguo 31/10/2003, 07:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías poner el código que usas ..y el error que te dá. Si tu código son X "include" pon el código también y el del script principal que llamas a los demas.

Si te marca algún error de cabeceras .. y dices usar sesiones .. Recuerda que "session_start()" por encima de esta función no puede existir nada de HTML .. Así que si en tu script principal usas HTML .. reorganiza el código para que quede por encima de todo HTML que tengas (incluido un salto de línea o un simple espacio antes de tu <? o del final del ?> de alguno de tus include() ..)

Un saludo,

PD: Hay otras técnicas como controlar el buffer de salida de PHP con funciones como ob_start() y afines .. Pero, si aprendes a estructurar tu código .. mejor.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 31/10/2003, 11:17
Avatar de korbendallastc  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 226
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno.. por lo que estoy comprobando el problema puede ser de las sesiones. Verás, deseo que según esté o no un usuario logeado, aparezcan en la cabecera unos enlaces u otros. Dicha cabecera es incluida desde mi página principal, con un include normal, después de la etiqueta body. En el archivo cabecera es donde va el código que comprueba si el usuario está o no logeado.

Dicho código, situado antes del html, sin espacios ni saltos de linea antes ni despues:

Código:
<? 
//Inicio - retomo la sesión: 
session_start(); 

//Si el usuario no está logeado: 
if ($_SESSION["autentificado"] != "SI") 
{ 
$enlaced="<A class='ebarra' HREF='http://www.dominio.com/login.php'>
Log In</A>";
} 

else
{
$enlaced="<A class='ebarra' href='http://www.dominio.com/paneldec.php'>Panel de Control</A>";
}
?> 
<html>
.........
</html>

Luego, dentro del código html, escribiría el valor de la variable $enlaced.

Si entro en cualquier página, no funciona. Sin embargo, si me logeo, desde el panel de control si funciona. Todos los archivos incluyen a cabecera, de la misma forma, dentro de código html y con un include normal. Además, si en lugar de entrar en cualquier página, pongo la url de la cabecera directamente, si funciona. (por eso en un principio deduje que era de los includes).

¿que estoy haciendo mal?

Muchos saludos. Y, por supuesto, gracias!!
__________________
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 06:36.