Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/08/2004, 10:53
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm bueno .. es que deberías pensar bien como trabaja PHP antes de justificar el uso del control del buffer de PHP (bajo esa directiva o bien ob_start() y funciones afines ..).

Si tu tienes un cierto script que lo que hará es redireccionar en sí ante tal condicion .. NOOOO necesitas nada más de HTML en ese script .. de hecho si te fijas como funciona header() .. lo que hace es enviar cabeceras al cliente (navegador) y .. esas cabeceras se envian y las ejecuta tu navegador -antes- de todo el HTML restante que le puedas enviar .. por ende .. no tiene razón de ser usar HTML (o salida en general) en ese tipo de script.

En otros casos tal vez hagas cosas como

if (condicion ...){
header ("Location: tal_sitio.tal");
}

Y si no se cumple .. tal vez quieras hacer algo así como dar un mensaje ahí mismo (salida). .. Ejemplo:

Código PHP:
<html>
<head>
</head>
<body>
<?
if (condicion){
header("location: tal_sitio.tal");
exit;
} else {
echo 
"blabaabl";
}
?>
</body>
</html>


Eso como veras ... no es "correcto" cara a un envio de cabeceras HTTP: header(). Lo correcto sería:

Código PHP:
<?
if (condicion){
header("location: tal_sitio.tal");
exit;
}
?>
<html>
<head>
</head>
<body>
bablabla
</body>
</html>
En estructuras de sitios tipo "web modulares" .. eso suele dar problemas por qué armas tu HTML por encima y debajo del tipico Switch() que decide que escript hay que cargar o no ... y a su vez ese tipo de script puede redireccionar o no .. Por ejemplo los scripts integros de proceso (que no dan salida .. solo procesan y redireccionan).

Para estos casos .. tan sólo se trata de separar tu proceso (script) del que muestra algo. Es decir, si tu tienes una sección tipo:

index.php?seccion=tal .. y estás en el "proceso" .. no llames a tu index.php?seccion=tal&accion=hacer_Algo donde llamaraias a tu script de proceso bajo un "include" de ese switch() o similar .. llamalo directamente y redirecciona al final de tu proceso hacia tu index.php?seccion=tal o la que corresponda que armará la página que corresponda.

Un saludo,

Última edición por Cluster; 13/08/2004 a las 11:00