script falla por un echo...¬¬

Iniciado por |Miguel|, 30 Marzo 2012, 12:10 PM

0 Miembros y 1 Visitante están viendo este tema.

|Miguel|

Hola a todos.

Bueno, tengo el siguiente código:
Código (php) [Seleccionar]

<?php
//$query = "select count(*) from usuario where mail='".$_POST["logUsuario"]."' and pass ='".$_POST["logPass"]."';";
$query 1;
echo("<p align=\"center\">");
//echo("<input name='logUsuario' type='text' disabled readonly='true' value='".$_POST["logUsuario"]."' />");
//echo("<input name='logPass' type='text' disabled readonly='true' value='".$_POST["logPass"]."' />");
if($query == 1){
header("Location: http://g16.colegiosteide.com/ppal/principal.php");
}
else{
//$query = "select count(*) from usuario where mail='".$_POST["logUsuario"]."';";
if($query == 0){
echo("E-mail no existente. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
}
else{
echo("Contrase&ntilde;a incorrecta. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
}
echo("Mail o contrase&ntilde;a no v&aacute;lida. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
}
echo("</p>");
?>


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.

#!drvy

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

|Miguel|

mmm ok. ¿no se puede redireccionar sin header?

Og.

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://www.php.net/manual/es/function.ob-start.php
http://www.php.net/manual/es/function.ob-end-flush.php
|-

|Miguel|

Gracias.
Ya cambié el script de forma que hace lo mismo, pero cumplo con los requisitos de header.

Gracias a todos!