Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/04/2004, 11:23
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
El hecho es que no es que no pueda existir código HTML (salida en general) por médio .. sino en que veas como se ejecuta un script PHP (programa en PHP) y el por qué no tendría sentido meter HTML por encima (del flujo) de una llamada a header() ..

Te explico:

Si tu tienes una condición en PHP que determina vajo algunas variables que generas en ese proceso o llegan por otro método (externo: formulario, link parámetro, valor de una cookie, session .. etc) .. cuando usas "header("Location.. ") le dices al navegador: "Cambia la página que está viendo el cliente" ..

Es decir, no tiene sentido hacer algo tipo:

Código PHP:
<html>
<
head>
</
head>
<
body>
if (
$tal){
    
header("location: tal.php");
} else {
    echo 
"hola";
}
</
body>
</
html
pero si que sería correcto .. atendiendo a que PHP procesa la salida y compone todo lo que se le va a entregar al cliente (navegador) según su algoritmo (lógica, condicinales .. etc):

Código PHP:
<?
if ($tal){
    
header("Location: tal.php");
     exit;
} else {
?>
<html>
<head>
</head>
<body>
<? echo "hola"?>
</body>
</html>
<?
}
?>
Si te fijas .. Si se cumple la condición .. se manda la cabecera al navegador para que cambie la página .. Si no se cumple .. se le entrega una página HTML -completa- y ahí habrá tu lógica PHP a su vez y demás lenguajes del lado del cliente que se ejecutaran en su parte: -el cliente-.

PHP dispone también de funciones para controla el buffer y por ejemplo .. poder hacer un "header()" donde prácticamente te dé la gana a costa de un consumo extra de recursos del servidor que .. sinceramente creo que es mejor ordenar y programar conociendo como funciona PHP que estar haciendo "parches" .. Esas funciones són útilies para otras cosas donde realmente la "salida" no depende de ti .. sino que tal vez es obtenida de otros médios. Si quieres ver ese tema . busca en www.php.net/ob_start() ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.