Foros del Web » Programando para Internet » PHP »

Problema Header

Estas en el tema de Problema Header en el foro de PHP en Foros del Web. Hola, Tengo problemas al redirigir... Tengo un formulario con login y password y un link que permitiria entrar como invitado en el sistema: Código: <form ...
  #1 (permalink)  
Antiguo 21/02/2008, 10:19
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema Header

Hola,
Tengo problemas al redirigir...

Tengo un formulario con login y password y un link que permitiria entrar como invitado en el sistema:

Código:
<form action="login.php" method="post" onSubmit="return validarLogin(this);">
	<table align = "center" width="50%"  border="0" cellspacing="2" cellpadding="2" bgcolor="#98FB98">
  <tr>
    <td colspan="2" align="center"
    <? if ($_GET["err"]=="nouser"){?>
    bgcolor=red> <span style="color:ffffff"><font size="2"> Usuari no existeix!</font></span><br>
	<? }else if ($_GET["err"]=="pass"){?>
	bgcolor=red> <span style="color:ffffff"><font size="2"> Contrasenya incorrecta!</font></span><br>		
    <? }else {?>
	bgcolor=#32cd32> <font size="2">Introdueix les dades </font> <? } ?></td>
    
  </tr>
  <tr>
    <td>N&uacute;mero de lector: </td>
    <td><input name="numLector" type="text"></td>
  </tr>
  <tr>
    <td>Contrasenya</td>
    <td><input name="pass" type="password"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="submit" type="Submit" value="Iniciar Sessió"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><a href="login.php?usuari=convidat">Entrar com a convidat</a></td>
  </tr>
  <tr>
    <td colspan="2" align="center">adios</td>
  </tr>
</table>
</form>
Luego en el codigo de comprueba los datos y los busca en la BD:
Código PHP:
<body>
<?
include "includes/connexio.php";
$db=conectarse();

    
$numLector=$_POST['numLector'];
    
$psw=md5($_POST['pass']);
    
$usuari=$_GET['usuari'];
    if (
$usuari=="convidat"){
        
header("Location: /guest.php"); 
    }else{
        
$cons="SELECT * FROM lectors WHERE NumLector = '$numLector'";
        
$result=mysql_query($cons,$db);
        if (
mysql_num_rows($result)==0){
                        
header("Location: /index.php?err=nouser");
        }else{
            
$fila=mysql_fetch_array($result);
            if (
$fila['Password']!=$psw){
                
header("Location: /index.php?err=pass");
            }else{
                switch (
$fila['Perfil']){
                 
//session_start();
                
case "Estudiant": echo "estudiantes"; break;   
                                 
/*$_SESSION["Perfil"]="Estudiant";
                                 header("Location: /aplicacionNormal.php");*/
                
case "Professor/a": echo "professor"; break; 
                                 
/*$_SESSION["Perfil"]="Professor";
                                 header("Location: /aplicacionProfesor.php");*/
                
}
            }        
        }
    }            

?>

</body>
El problema que tengo es que no me redirige a la pagina guest.php, y lo he puesto de muchas maneras... Tambíen he pensado que para el caso del invitado, enviarlo desde el formulario a "su" pagina... pero creo que es mejor hacerlo asi... y los headers los voy a acabar necesitando para los usuariso registrados..

Gracias, por adelantado.
  #2 (permalink)  
Antiguo 21/02/2008, 10:33
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
Re: Problema Header

prueba poniendo elel location así
Código PHP:
header("Location: guest.php");//sin '/' 
ó, anteponiendo un punto
Código PHP:
header("Location: ./guest.php"); 
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 21/02/2008, 10:41
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema Header

gracias eits por responder pero no funciono... cuanco clico sobre el link en la barra de direcciones me muestra:
..../login.php?usuari=convidat

he comprado q entrara en ese if y he puesto un echo de la variable para comprobar que si que entra, entra, pero el header no lo hace.. :(
  #4 (permalink)  
Antiguo 21/02/2008, 10:45
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 4 meses
Puntos: 4
Re: Problema Header

Por que no posteas la estructura de archivos, seria mas facil reconocer el error asi...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #5 (permalink)  
Antiguo 21/02/2008, 11:05
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
Re: Problema Header

es extraño, ya que a mi me funciona correctamente.

coincido con Bellenger, pon la estructura de archivos.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 21/02/2008, 11:42
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema Header

a mi también me parece extraño, porque cuando lo pruebo en local, si que "me hace" los headers, pero al subirlo al servidor no... y casi me vuelvo loca hasta ver que lo q no funcionaba eran los headers...

la estructura por ahora no es muy grande

en local lo tengo los 3 archivos implicados dentro de la carpeta www, y en el servidor la carpeta se llama html, y nada más

gracias
  #7 (permalink)  
Antiguo 21/02/2008, 11:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 33
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Problema Header

echo "<script>location.href='DIRECCION A REDIRECCIONAR'</script>";

y nos ahorramos problemas con los headers al redireccionar
  #8 (permalink)  
Antiguo 21/02/2008, 11:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema Header

Creo el problema no es las rutas, si no que son dos cosas. La primera es que el PHP de tu servidor lo tienes para no mostrar errores, y la segunda es que tu estas enviando contenido HTML antes de enviar el header, por lo que por mas que hagas lo que hagas no podrás redireccionar ya que enviaste contenido antes.

Saludos.
  #9 (permalink)  
Antiguo 21/02/2008, 12:20
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema Header

Cita:
Iniciado por BeRMaNyA Ver Mensaje
echo "<script>location.href='DIRECCION A REDIRECCIONAR'</script>";

y nos ahorramos problemas con los headers al redireccionar
Gracias, así si que funciona.



Cita:
Iniciado por GatorV Ver Mensaje
Creo el problema no es las rutas, si no que son dos cosas. La primera es que el PHP de tu servidor lo tienes para no mostrar errores, y la segunda es que tu estas enviando contenido HTML antes de enviar el header, por lo que por mas que hagas lo que hagas no podrás redireccionar ya que enviaste contenido antes.

Saludos.
No entiendo la segunda parte... cuando es que envio HTML?? La pagina de login esta toda en php, la de index.php si que contiene html pero vaya...

Gracias a todos por vuestras respuestas.
  #10 (permalink)  
Antiguo 21/02/2008, 12:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema Header

Ve esta parte:
Código PHP:
<body> <-- Con esto ya no sirve header()
<?
include "includes/connexio.php";
$db=conectarse();

    
$numLector=$_POST['numLector'];
    
$psw=md5($_POST['pass']);
    
$usuari=$_GET['usuari']; 
?>
Saludos.
  #11 (permalink)  
Antiguo 21/02/2008, 17:02
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
Re: Problema Header

buen punto lo de GatorV la verdad que no me habia fijado, pero eso se soluciona con ob_start()(al principio de la pág.) y ob_end_flush()(al final) para tenerlo almacenado temporalmente en el buffer antes de ser enviado al cliente y así si que se puede modificar el header.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #12 (permalink)  
Antiguo 21/02/2008, 18:15
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema Header

Bueno!
GatorV me dio la clave... miré mi codigo y vi que no necesitaba para nada el html... asi que todo fuera y esta todo entre <? ?> y los headers funcionando perfectamente.

Graaacias a todos de verdad!
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 17:20.