Foros del Web » Programando para Internet » PHP »

Porque este error con cabeceras

Estas en el tema de Porque este error con cabeceras en el foro de PHP en Foros del Web. Hola: Tengo este código: Código PHP: <?   require( "funcion.php" );    $link  =  ConectaDB ();    $uname  = isset( $_POST [ 'uname' ])? $_POST [ ...
  #1 (permalink)  
Antiguo 05/03/2005, 14:05
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Porque este error con cabeceras

Hola:
Tengo este código:
Código PHP:
<?
 
require("funcion.php");
  
$link ConectaDB();
  
$uname = isset($_POST['uname'])?$_POST['uname']:null;
  
$upass = isset($_POST['upassenc'])?$_POST['upassenc']:null;
  
$tipo  = isset($_POST['tipo'])?$_POST['tipo']:null;

  switch(
$tipo){
   case 
0:
    
$querye "SELECT * FROM estudiantes WHERE (uname='".$uname."') AND (upassword='".$upass."')";
    
$resulte       mysql_query($querye) or die(trigger_error("Usuario no existente en la BDatos. Póngase en contacto con el Administrador"));
    
$num_rowse     mysql_num_rows($resulte);
    list(
$id,$realname,$uname,$upass,$umail) = mysql_fetch_row($resulte);
   break;
   case 
1:
    
$queryp "SELECT * FROM profesor WHERE (uname='".$uname."') AND (upass='".$upass."')";
    
$resultp       mysql_query($queryp) or die(trigger_error("Usuario no existente en la BDatos. Póngase en contacto con el Administrador"));
    
$num_rowsp     mysql_num_rows($resultp);
    list(
$id,$realname,$uname,$upass) = mysql_fetch_row($resultp);
   break;
  }

  if(
$num_rowse 0){
   
$_SESSION['uname']     = base64_encode($uname);
   
$_SESSION['urealname'] = base64_encode($realname);
   
$_SESSION['umail']     = base64_encode($umail);
   
header("Location: main.php?t=est");
  }elseif(
$num_rowsp >0){
   
$_SESSION['uname']     = base64_encode($uname);
   
$_SESSION['urealname'] = base64_encode($realname);
   
header("Location: main.php?t=pro");
  }else{
   
header("Location: index.php?err=0"); // No existe usuario con ese nombre
  
}
  
CierraDB($link);
 
?>
y el mismo me está arrojando este error cuando lo ejecuto:
Cita:
Warning: Cannot modify header information - headers already sent by (output started at c:\wamp\www\sisevalfrec\checkuser.php:1) in c:\wamp\www\sisevalfrec\checkuser.php on line 31
y no se porque razón me da ese error. Alguna idea?
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 05/03/2005, 14:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Has mirado lo que te dice el error? Eso de que en la linea 1 de checkuser.php envias salida al navegador. ¿Tienes alguna linea en blanco al proncipio del fichero, o algun espacio en blanco? Asegurate que el <? son los primeros caracteres del fichero.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 06/03/2005, 04:33
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 1 mes
Puntos: 7
Cita:
Iniciado por Reynier
Hola:
Tengo este código:
Código PHP:
<?
(...)
   
header("Location: main.php?t=pro");
  }else{
   
header("Location: index.php?err=0"); // No existe usuario con ese nombre
  
}
  
CierraDB($link);
 
?>
y el mismo me está arrojando este error cuando lo ejecuto:

y no se porque razón me da ese error. Alguna idea?
Salu2
El problema también puede ser que después de header(Location: loquesea.php) no puedes ejecutar código cómo haces con CierraDB($link); ya que (para entendernos) cuando le dices header(location: loquesea.php) le estás diciendo que abandone la página. Si miras la documentación de header de php verás que incluso recomienda poner exit; después de esta llamada para asegurar que no hay más funciones después.

Última edición por pintix; 06/03/2005 a las 04:34
  #4 (permalink)  
Antiguo 06/03/2005, 11:05
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Pues ...

Gracias a ambos pero la solución me la dío Josemi en el POST anterior. Lo que pasaba es que antes del tag que abre PHP "<?" y antes del que cierra "?>" habia un espacio. Se lo quite y ya todo funciona perfecto.

Salu2
__________________
Ing. Reynier Pérez Mira
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:41.