Foros del Web » Programando para Internet » PHP »

Warning: Cannot modify header information

Estas en el tema de Warning: Cannot modify header information en el foro de PHP en Foros del Web. Warning: Cannot modify header information - headers already sent by (output started at C:\asp\php\autentificacion.php:36) in C:\asp\php\autentificacion.php on line 37 Hola a todos los del foro.En ...
  #1 (permalink)  
Antiguo 07/06/2003, 13:11
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 20 años, 9 meses
Puntos: 0
Warning: Cannot modify header information

Warning: Cannot modify header information - headers already sent by (output started at C:\asp\php\autentificacion.php:36) in
C:\asp\php\autentificacion.php on line 37

Hola a todos los del foro.En el siguiente script de autentificacion, si entra le envia a una pagina y si no le muestra No estas registrado,pero en este caso me da error de cabeceras.Tengo entendido que no hay que poner nada delente de del codigo php <? ?>.
Alguien sabe porque,he probado con y sin nada antes del codigo PHP.

-Autentificacion.php:
<?
//Introducir tus datos de Mysql
$servidor = "localhost";
$usuario = "Pepe";
$password = "Hola";
$base_de_datos = "mydb";

//conecto con la base de datos
$conn = mysql_connect($servidor,$usuario,$password);

//selecciono la BBDD
mysql_select_db($base_de_datos,$conn);

//Sentencia SQL para buscar un usuario con esos datos
//nomusuario y contraseña son las variables que se pasan desde el form
$ssql = "SELECT * FROM usuarios WHERE nombre_usuario='$nomusuario' and clave_usuario='$contraseña'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);
/*Si esa sentencia SELECT responde con algún registro encontrado, sabremos que existe un usuario
donde sus datos de autentificación corresponden perfectamente con los introducidos.
En ese caso podremos realizar las acciones encaminadas a permitir el acceso.
Por el contrario, si la sentencia SELECT no encuentra ningún registro, sabremos que no existe un usuario
con los datos de autentificación introducidos y por lo tanto, deberemos realizar las acciones encaminadas
a restringir el acceso.*/

if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: formverdirectorio.html");
}else {
//si no existe le mando otra vez a la portada
echo "No estas registrado";
header("Location: noregistro.php"); -->Linea 37
}

?>

-noregistro.php:
<?echo "<br><br> No estas registrado"; ?> es solo 1 linea que esta la primera

-Cuando va a noregistro.php sale:
No estas registrado ->Esto esta bien pero tambien
Sale el siguiente error, tengo entendido que para no de error hay que quitar las cabeceras antes de <? ?>
Warning: Cannot modify header information - headers already sent by (output started at C:\asp\php\autentificacion.php:36) in
C:\asp\php\autentificacion.php on line 37
  #2 (permalink)  
Antiguo 07/06/2003, 13:55
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Quita el echo de la linea 36. No se puede mandar nada al navegador para mostrar, ni HTML, ni echo, ni espacios o retornos de carro. Como mucho otros header o setcookie.

El redireccionamiento se hace sin mostrar nada en el navegador. Si quieres mostrar un mensaje y despues redireccionar debes usar o javascript o el metatag HTML refresh.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/06/2003, 14:16
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 20 años, 9 meses
Puntos: 0
Gracias Josemi

Sin tu ayuda no se lo que haria. Eres un crack.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:20.