Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: |Miguel| en 30 Marzo 2012, 12:10 pm



Título: script falla por un echo...¬¬
Publicado por: |Miguel| en 30 Marzo 2012, 12:10 pm
Hola a todos.

Bueno, tengo el siguiente código:
Código
  1. <?php
  2. //$query = "select count(*) from usuario where mail='".$_POST["logUsuario"]."' and pass ='".$_POST["logPass"]."';";
  3. $query = 1;
  4. echo("<p align=\"center\">");
  5. //echo("<input name='logUsuario' type='text' disabled readonly='true' value='".$_POST["logUsuario"]."' />");
  6. //echo("<input name='logPass' type='text' disabled readonly='true' value='".$_POST["logPass"]."' />");
  7. if($query == 1){
  8. header("Location: http://g16.colegiosteide.com/ppal/principal.php");
  9. }
  10. else{
  11. //$query = "select count(*) from usuario where mail='".$_POST["logUsuario"]."';";
  12. if($query == 0){
  13. echo("E-mail no existente. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
  14. }
  15. else{
  16. echo("Contrase&ntilde;a incorrecta. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
  17. }
  18. echo("Mail o contrase&ntilde;a no v&aacute;lida. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
  19. }
  20. echo("</p>");
  21. ?>
  22.  
Y casca. dice: Warning: Cannot modify header information - headers already sent by ...

pero si comento la línea de echo("<p align=\"center\">"); funciona bien. No entiendo porqué, ¿alguna idea?

Gracias.


Título: Re: script falla por un echo...¬¬
Publicado por: #!drvy en 30 Marzo 2012, 15:56 pm
Los headers (cabeceras) se leen por el navegador antes de recibir el html o el documento que tienes que mostrar.

Por tanto primero debes enviar los headers y luego ya imprimir lo que sea.

Saludos


Título: Re: script falla por un echo...¬¬
Publicado por: |Miguel| en 30 Marzo 2012, 15:58 pm
mmm ok. ¿no se puede redireccionar sin header?


Título: Re: script falla por un echo...¬¬
Publicado por: Og. en 31 Marzo 2012, 10:16 am
Redirecciona con header, pero solo mantente seguro que no enviaste ningún dato a la salida estándar antes de enviar cabeceras

Te recomiendo leer
http://php.net/manual/es/function.header.php (http://php.net/manual/es/function.header.php)
http://www.php.net/manual/es/function.ob-start.php (http://www.php.net/manual/es/function.ob-start.php)
http://www.php.net/manual/es/function.ob-end-flush.php (http://www.php.net/manual/es/function.ob-end-flush.php)


Título: Re: script falla por un echo...¬¬
Publicado por: |Miguel| en 31 Marzo 2012, 13:19 pm
Gracias.
Ya cambié el script de forma que hace lo mismo, pero cumplo con los requisitos de header.

Gracias a todos!