Tema: warning!
Ver Mensaje Individual
  #13 (permalink)  
Antiguo 28/01/2009, 12:39
Avatar de Sommy
Sommy
 
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: warning!

Cita:
Iniciado por GatorV Ver Mensaje
No es necesario que sea al inicio del archivo, ¿donde leiste eso? , puede ser perfectamente al final de un archivo en medio en donde quieras.

Lo importante y clave es que NO puedes enviar nada de texto, esto es por diseño del protocolo HTTP, si realmente no puedes diseñar correctamente el flujo de tu script entonces puedes recurrir a las funciones de salida de PHP para controlar la salida de texto:
Código php:
Ver original
  1. <?php
  2. ?>
  3. <html>
  4. <head>
  5. <title>blah</title>
  6. </head>
  7. <body>
  8. <p>blah</p>
  9. <?php
  10. echo "foo";
  11. ?>
  12. </body>
  13. </html>
  14. <?php
  15. header("Location: algo.php");
  16. ?>

Como te comento no es por PHP, y que PHP "llore", el problema es el mal diseño de muchos scripts, y el diseño del protocolo HTTP, cuando tu envias una cabezera esta debe de ser ANTES del documento de salida, por eso si envias texto, pues automaticamente cortas con el proceso de la transferencia, y por ende ya no puedes enviar las cabeceras.

Saludos
Me alegra saber que existe forma!! realmente no conocia lo de ob_start(). Ahora, eso no comera mas recursos? Pregunto porque ni idea... Me suena que php tiene que pensar y esforzarse un poco mas...

Sin duda, es superior a cualquier cosa, pero asi como superior, no pueden negarme que es mas hincha cocos... Lo cual no esta mal, porque como dice Triby nos obliga a hacer las cosas bien.

Lo que es fatal que veo en muchos lados es que hardcodean todo el HTML para poder hacer un header... Triste...

Gracias hicos!