Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] redireccionar a diferentes paginas al loguearse

Estas en el tema de redireccionar a diferentes paginas al loguearse en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/08/2014, 11:47
xap
 
Fecha de Ingreso: julio-2014
Ubicación: caracas
Mensajes: 18
Antigüedad: 9 años, 10 meses
Puntos: 0
redireccionar a diferentes paginas al loguearse

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 tabla_nivel
nombre id_nivel: (pk)
apellido nombre
login
clave
id_nivel:(fk)

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:

login:
Código PHP:
<html>
<
div align="center">
<
title>Login USUARIO </title>
<
head><link href="admin/favicon.ico" rel="shortcut icon" ></head>
</
body>
<
form name="fvalida" METHOD="POST" action="procesos/procesa_login.php">
<
tr>
<
td>Login:</td>
<
br />
<
td><input type="text" name="login"></td>
<
br />
</
tr>
<
tr>
<
td>Password:</td>
<
br />
<
td><input type="password" name="pass"></td>
<
br />
<
br />
</
tr>
<
input class="boton" type="submit" value="Entrar" />
</
form>
</
div>
</
body>
</
html
config:
Código PHP:
<?php
 
function Conectarse(){

 
if (!(
$link=mysql_connect("localhost","root","1234"))) {
echo 
"Error conectando a la base de datos.";
exit();
}
 
if (!
mysql_select_db("proyecto",$link)){
echo 
"Error seleccionando la base de datos.";
exit();
}
return 
$link;
}
$link Conectarse();
mysql_close($link); //cierra la conexion
 
?>
crea usuario:
Código PHP:
<?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 PHP:
<?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
  #2 (permalink)  
Antiguo 25/08/2014, 11:50
xap
 
Fecha de Ingreso: julio-2014
Ubicación: caracas
Mensajes: 18
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: redireccionar a diferentes paginas al loguearse

Perdon las tablas son las siguientes estaban mal formuladas

tabla_usuario
nombre
apellido
login
clave
id_nivel:(fk)

tabla_nivel
id_nivel:(pk)
nombre
  #3 (permalink)  
Antiguo 25/08/2014, 16:19
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: redireccionar a diferentes paginas al loguearse

Muy buenas,

A ver si podemos ayudarte. Creo que:

1. En la primera consulta, $query, deberías buscar SÓLO 1 registro que cumpla con las dos condiciones, de usuario y contraseña, por lo que yo añadiría LIMIT 1 para ahorrar tiempo y recursos, tanto en la búsqueda, como en ejecución del propio php.
2.
Código PHP:
Ver original
  1. $id_nivel = $_POST['id_nivel'];  $nombre = $_POST['nombre'];
deberían ser
Código PHP:
Ver original
  1. $id_nivel = $_SESSION['id_nivel'];  $nombre = $_SESSION['nombre'];
3. La segunda consulta, entonces, creo que es innecesaria.
4. En el elseif la condición tendría que estar formulada así
Código PHP:
Ver original
  1. }elseif($id_nivel [B]==[/B] 1){

Salvo mejor opinión, que se me puede estar pasando algo :D

Espero te sea de ayuda.

Un saludo!
__________________
diseño web | Clan Rol
  #4 (permalink)  
Antiguo 25/08/2014, 17:17
xap
 
Fecha de Ingreso: julio-2014
Ubicación: caracas
Mensajes: 18
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: redireccionar a diferentes paginas al loguearse

muchas gracias por responder hermano pero ya resolvi lo que pasa es que en procesa login estaba declarando las variables id nivel y nombre en POST y tenian que ser en array muchas gracias por responder hermano

Etiquetas: formulario, html, loguearse, mysql, redireccionar, registro, select, sql, tabla, 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 18:17.