Foros del Web » Programando para Internet » PHP »

Header segun usuario

Estas en el tema de Header segun usuario en el foro de PHP en Foros del Web. Hola, soy un estudiante de infromatica y estoy haciendo un proyecto para clase y quiero tener una pagina que segun el tipo de usuario que ...
  #1 (permalink)  
Antiguo 03/03/2010, 13:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Header segun usuario

Hola, soy un estudiante de infromatica y estoy haciendo un proyecto para clase y quiero tener una pagina que segun el tipo de usuario que esta metido en la base de datos me salga una pagina o otra dependiendo del tipo de usuario. Nose donde esta el error exactamente
Este es el codigo:

<?php
session_start();
//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("examen",$conn);
$result = "SELECT tipoAcceso FROM usuarios WHERE usuario='$usur' AND password='$pass' AND tipoAcceso='$tipo'";
echo "Datos Incorrectos Presione Volver para Intentarlo Nuevamente";
$row = mysql_query($result,$conn);
while($row = mysql_fetch_array($result))
{
if ($row["password"] = $pass and $row["$tipo"] = usuario )
{
header("Location:usuario.php");
}
else if ($row["password"] = $pass and $row["$tipo"] = administrador )
{
header("Location:administrador.php");
}
else
{
header("Location:error.html");
}
mysql_close($conn);
?>
  #2 (permalink)  
Antiguo 03/03/2010, 13:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Header segun usuario

Primero te recomiendo usar la función de error mysql_error().
Código PHP:
Ver original
  1. mysql_query("aqui va tu consulta") or die(mysql_error());
Para ver si tienes algun error en la consulta. Luego a las variables te sugiero que uses var_dump para ver como están declaradas cada una de ellas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/03/2010, 14:03
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Header segun usuario

Tambien tienes mal esta parte:

Código PHP:
$result "SELECT tipoAcceso FROM usuarios WHERE usuario='$usur' AND password='$pass' AND tipoAcceso='$tipo'";
echo 
"Datos Incorrectos Presione Volver para Intentarlo Nuevamente";//esto sobra
$row mysql_query($result,$conn);
while(
$row mysql_fetch_array($result)) 
);

deberiía ser:

Código PHP:
$query "SELECT tipoAcceso FROM usuarios WHERE usuario='$usur' AND password='$pass' AND tipoAcceso='$tipo'";
$result mysql_query($query,$conn);
while(
$row mysql_fetch_array($result)) 
Saludos
__________________
Tu álbum de cromos online!!
  #4 (permalink)  
Antiguo 03/03/2010, 14:04
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Header segun usuario

si te da error php te muestra donde esta el problema.
para colocar un header no debe de hacer nisiquiera un echo o espacio antes del la salida.
  #5 (permalink)  
Antiguo 03/03/2010, 14:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Header segun usuario

Hola! Muchas gracias por la respuestas tan rapidas :D

Lo he dejado asi y me sigue saliendo en blanco, no h dejado ningun espacio... no entiendo que ocurre aqui:

<?php
session_start();
//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("examen",$conn);
$query = "SELECT tipoAcceso FROM usuarios WHERE usuario='$usur' AND password='$pass' AND tipoAcceso='$tipo'";
$result = mysql_query($query,$conn);
while($row = mysql_fetch_array($result))
{
if ($row["password"] = $pass and $row["$tipo"] = usuario )
{
header("Location:usuario.php");
}
else if ($row["password"] = $pass and $row["$tipo"] = administrador )
{
header("Location:administrador.php");
}
else
{
header("Location:error.html");
}
mysql_close($conn);
?>
  #6 (permalink)  
Antiguo 03/03/2010, 14:22
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Header segun usuario

Te repito usa la función de mysql_error para ver si en la consulta tienes algún error. Mira el ejemplo que te indique.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 03/03/2010, 14:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Header segun usuario

gracias! el error ha cambiado!! jaja
Por lo menos ya dice algo..
<?php
session_start();
//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("examen",$conn);
$query = "SELECT tipoAcceso FROM usuarios WHERE usuario='$usur' AND password='$pass' AND tipoAcceso='$tipo'";
$result = mysql_query($query,$conn);
mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
if ($row["password"]=$pass and $row["$tipo"]=usuario)
{
header("Location:usuario.php");
}
else if ($row["password"]= $pass and $row["$tipo"]=administrador)
{
header("Location:administrador.php");
}
else
{
header("Location:error.html");
}
mysql_close($conn);
?>
Y este el error:

Parse error: syntax error, unexpected $end in C:\wamp\www\apuntes\auten.php on line 26

Al cerrar un } ya no aparece el erroe que creo que era por eso, pero se vuelve a quedar en blanco otra vez..
  #8 (permalink)  
Antiguo 03/03/2010, 14:34
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Header segun usuario

Falta alguna llave por cerrar o punto y coma.

Creo que es la llave del while.
__________________
Tu álbum de cromos online!!
  #9 (permalink)  
Antiguo 03/03/2010, 14:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Header segun usuario

El error te esta indicando que no haz cerrado alguna llave o punto y coma. Verifica que tengas todas las llaves cerradas correctamente. Me refiero a algo así
Código PHP:
Ver original
  1. if(){
  2.  
  3. }
  4. elseif(){
Alguno de ellos no debiste cerrarlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 03/03/2010, 14:37
 
Fecha de Ingreso: marzo-2010
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Header segun usuario

Sisi perdonar por mi idiotez , ha sido postearlo y encontrarlo y ahora otra vez en blanco..
  #11 (permalink)  
Antiguo 03/03/2010, 14:52
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Header segun usuario

Tienes que empezar ha depurar código, mira los valores que te devuelve el pass, user, tipo etc mediante echos. Si todo está bien pasa a otra cosa.
__________________
Tu álbum de cromos online!!
  #12 (permalink)  
Antiguo 04/03/2010, 08:24
 
Fecha de Ingreso: marzo-2010
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Header segun usuario

Despues de hacer el echo he encontrado donde estaba el fallo y es que el tipo de usuario no me lo cogia bien d ela base de datos.
Pero calro entonces hay que ghacer algo diferente a lo que tenia hecho y aun asi me da fallo, ahora mismo me dice que no encuentra la pagina T_T.
Este es el codigo.. GRACIAS!
<?php
session_start();
//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("examen");
$query = "SELECT * FROM usuarios WHERE usuario='$usur' AND password='$pass'";
echo $query;
$result = mysql_query($query);
//echo $result;
while($row = mysql_fetch_array($result))
{
if ($row[0]==$usur && $row[1]==$pass && $row[2]=='usuario')
{
header("Location:usuario.php");
}
else if ($row[0]==$usur && $row[1]==$pass && $row[2]=='administrador')
{
header("Location:administrador.php");
}
else
{
header("Location:error.html");
}
}
mysql_close($conn);
?>

Etiquetas: header, usuarios
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 21:09.