Autor Tema: redireccionar a diferentes paginas al loguearse con php  (Leído 17120 veces)

xap

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
redireccionar a diferentes paginas al loguearse con php
« en: 25 de Agosto 2014, 22:31 »
Buenas Amigos, Tengo un problema, reliace un login de usuario pero me pidieron que tenia que ser con dos perfiles Administrador y Usuario.
Tengo dos tablas una de usuarios y otra llamada nivel

tabla_usuario
nombre
apellido
login
clave
id_nivel:(fk)

tabla_nivel
id_nivel:(pk)
nombre

en la tabla nivel esta de la siguiente forma: id nombre
0 administrador
1 usuario
de manera que cuando registre un usuario en el id nivel en la tabla usuario le coloque el perfil.
cuando registro a los usuarios y le doy el tipo de perfil "0" o "1" y cuando intento loguearme siempre me redirecciona es a la pagina del administrador asi sea teniendo perfil de usuario.
Lo que quisiera y espero me puedan ayudar teniendo en cuenta los valores de la tabla nivel al loguearme me redireccione correctamente al usuario o administrador.
los formulario de php son los siguientes:

crea usuarios
Código: [Seleccionar]
<?php
 
include dirname(dirname(__FILE__))."/config.php";

$link=Conectarse();

$id $_POST['id'];
 
$login $_POST['login'];
 
$pass1 $_POST['pass1'];
 
$pass2 $_POST['pass2'];
 
$nombre$_POST['nombre'];
 
$apaterno=$_POST['apaterno'];
 
$amaterno$_POST['amaterno'];
 
$email $_POST['email'];
 
$id_nivel $_POST['id_nivel'];
 
$query sprintf("SELECT login FROM usuarios WHERE usuarios.login = '%s'" ,
 
$login);
 
$result=mysql_query($query,$link);
 
if(
mysql_num_rows($result)){
 
echo 
"El usuario ya existe en la Base de Datos";
 
} else {
 
mysql_free_result($result);
 
if(
$pass1!=$pass2) {
 
echo 
"Los passwords deben coincidir";
 
} else {
 
$pass1=sha1(md5($pass1));
 
$query sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email, id_nivel)
 
VALUES ('%s', '%s', '%s', '%s', '%s', '%s','%s')"
,$login$nombre$apaterno,$amaterno$pass1$email$id_nivel);

 
$result=mysql_query($query,$link);
 
if(
mysql_affected_rows()){
 
header("Location: ../login.html");
 
} else {
 
echo 
"Ocurrio un Error al Introducir los Datos";

}
 
}
 
}
 
?>

procesa login
Código: [Seleccionar]
<?php
 
session_start
();

 
include 
dirname(dirname(__FILE__))."/config.php";

$link=Conectarse();
 
$login $_POST['login'];
 
$pass $_POST['pass'];
 
$pass=sha1(md5($pass));
 
$query sprintf("SELECT usuarios.id,
 
usuarios.login,
 
usuarios.nombre,
 
usuarios.apaterno,
 
usuarios.amaterno,
 
usuarios.email,
 
usuarios.id_nivel
 
FROM usuarios WHERE usuarios.login='%s'&& usuarios.password = '%s'"
,
 
$login$pass);
 
$result=mysql_query($query,$link);
 
if(
mysql_num_rows($result)){
 
$array=mysql_fetch_array($result);
 
$_SESSION["id_usuario"]= $array["id"];
 
$_SESSION["login"]= $array["login"];
 
$_SESSION["nombre"]= $array["nombre"];
 
$_SESSION["apaterno"]= $array["apaterno"];
 
$_SESSION["amaterno"]= $array["amaterno"];
 
$_SESSION["email"]= $array["email"];
 
$_SESSION["id_nivel"]= $array["id_nivel"];

$id_nivel $_POST['id_nivel'];
$nombre $_POST['nombre'];



$query2 sprintf("SELECT * FROM usuarios,nivel WHERE usuarios.id_nivel=nivel.id_nivel");


if(
$id_nivel  == 0){
   
$id_nivel "administrador"
    
header("location:adminPage.php"); 
}elseif(
$id_nivel 1){
    
$id_nivel "usuario";
    
header("location:normal.php"); }
 
}
 
?>
En esta ultima intente realizar la operacion requerida pero no me redirecciona bien la pagina, soy novato espero me comprendan y me puedan ayudar
« Última modificación: 13 de Septiembre 2014, 18:47 por Alex Rodríguez »

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:redireccionar a diferentes paginas al loguearse
« Respuesta #1 en: 25 de Agosto 2014, 22:47 »
Location en la funcion header es con mayúsculas, puede ser eso??

Osea, sería:

Código: [Seleccionar]
...
if($id_nivel  == 0){
   $id_nivel = "administrador";
    header("Location:adminPage.php");
}elseif($id_nivel = 1){
    $id_nivel = "usuario";
    header("Location:normal.php"); }
 ...

Bueno ya nos cuentas...

xap

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re:redireccionar a diferentes paginas al loguearse
« Respuesta #2 en: 26 de Agosto 2014, 00:29 »
hola dongo gracias por ayudarme lo cambie tal cual me indicaste me aparece lo mismo redirecciona siempre a la misma pagadmin

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:redireccionar a diferentes paginas al loguearse
« Respuesta #3 en: 26 de Agosto 2014, 00:44 »
Creo que el problema podría estar aquí, en el fichero procesa login, casi al final:

Código: [Seleccionar]
...
$id_nivel = $_POST['id_nivel'];
$nombre = $_POST['nombre'];
...

Si te fijas estas obteniendo estos valores de $_POST y no es en $_POST donde están, están en array, creo que debería ser:

Código: [Seleccionar]
$id_nivel = $array['id_nivel'];
$nombre = $array['nombre'];

Ya que el id de nivel no creo que venga desde el formulario de login, sino que lo has sacado de la consulta, entonces lo que te esta pasando es que la variable $id_nivel no tendrá  valor y por eso no te redirecciona....

Bueno a ver si es eso, ya nos cuentas.

« Última modificación: 26 de Agosto 2014, 00:45 por dongo »

xap

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re:redireccionar a diferentes paginas al loguearse
« Respuesta #4 en: 26 de Agosto 2014, 01:12 »
Amigo de verdad no se como agradecerte me has quitado tantas horas de encima  y tantos dias de buscar en google y nada hasta que me respondistes en realidad no encontraba el problema muchas gracias hermano ya se soluciono... :)

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:redireccionar a diferentes paginas al loguearse
« Respuesta #5 en: 26 de Agosto 2014, 01:27 »
Nada hombre, era un fallo tonto a cualquiera se le puede escapar... Por lo demás esta bastante bien, incluso encriptas la password, no todo el mundo lo hace ;) un saludo.

asolis147

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:redireccionar a diferentes paginas al loguearse con php
« Respuesta #6 en: 31 de Octubre 2014, 20:14 »
Necesito hacer exactamente lo mismo en un proyecto, ya copie tu codigo pero no me sale no se  ??

asolis147

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
redireccionar a diferentes paginas al loguearse con php
« Respuesta #7 en: 31 de Octubre 2014, 20:16 »
soy nuevo en esto me pueden mandar el codigo del formulario porfavor
« Última modificación: 01 de Noviembre 2014, 01:06 por asolis147 »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:redireccionar a diferentes paginas al loguearse con php
« Respuesta #8 en: 01 de Noviembre 2014, 10:32 »
Hola, debes tener en cuenta que el código no puedes simplemente copiarlo, por ejemplo en la línea include dirname(dirname(__FILE__))."/config.php"; está invocando un archivo config.php, y para poder hacer lo mismo tendrás que crear ese archivo e introducir lo que haga falta en él (por ejemplo los datos de conexión a base de datos).

Puedes revisar conceptos viendo el curso de php: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Una vez hayas creado tu código, si tienes problemas te recomiendo que abras un nuevo tema del foro y plantees la consulta para tratar de ayudarte con tu código.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".