Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] login con condicion de area ya esta el usuario y el pass

Estas en el tema de login con condicion de area ya esta el usuario y el pass en el foro de PHP en Foros del Web. Hola Ü bueno pues tengo una pequeña duda ya tengo mi login pero solo necesito hacer que si es de una determinada area vaya a ...
  #1 (permalink)  
Antiguo 31/01/2013, 10:46
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Mensaje login con condicion de area ya esta el usuario y el pass

Hola Ü bueno pues tengo una pequeña duda ya tengo mi login pero solo necesito hacer que si es de una determinada area vaya a algun lado y si no a otra como lo puedo hacer? mi codigo es el siguiente:

************************************************** *******
este ya sirve y si me deja si el usuario esta en la base de datos


function verificar_login($user,$pass,&$result) {
$sql = "SELECT * FROM usuarios WHERE user ='$user' and pass ='$pass'";
$rec = mysql_query($sql);
$count = 0;

while($row = mysql_fetch_object($rec))
{
$count++;
$result = $row;
}

if($count == 1)
{
return 1;
}

else
{
return 0;
}
}


function areaQuePertenece(){
$sql2 = "SELECT area FROM usuarios";
$rec2 = mysql_query($sql2);
}

----y aqui ya es donde valido el id y el pass solamente que intento agregar esta
-----linea y no me la toma en cuenta que hice mal?

if(!isset($_SESSION['userid']))
{
if(isset($_POST['login']))
{
if(verificar_login($_POST['user'],$_POST['pass'],$result) == 1)
{
$_SESSION['userid'] = $result->idusuario;

--este es el if que necesito que si el area es igual a admin mande a otra pagina

if( areaQuePertenece == "admin"){
header("location:emmatest.php");}
else{
header("location:registro2.php");
}
}
else
{
echo '<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
}
}
?>
************************************************** ******

espero me ayuden gracias!!
  #2 (permalink)  
Antiguo 31/01/2013, 11:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: login con condicion de area ya esta el usuario y el pass

consulte las políticas del foro, utilice el highlight para mostrar código

el problema es ¿quien determina ésa area?: lo usual es colocar en la tabla de usuario un campo adicional que especifique el tipo de ROL del usuario, de ésa forma puede discriminar y hacer la condición.

en su caso veo que trata de hacer otra consulta para extraer el área de la misma tabla, pero no especifica el usuario, además de que puede hacerlo desde la función de verificar login.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 31/01/2013, 11:10
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: login con condicion de area ya esta el usuario y el pass

Por lo que veo te debe mandar siempre aquí registro2.php, no?

areaQuePertenece() no devuelve nada, le falta código....
  #4 (permalink)  
Antiguo 31/01/2013, 11:18
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: login con condicion de area ya esta el usuario y el pass

realmente aqui ando perdido, gracias por contestar Ü ntoncs como seria?creo yo que desde la misma consulta de verificar_login se puede pero el problema es q nose como agregarle esa condicion y cluster28 no es siempre q mande a registro2.php si no que ya tngo la otra pagina al a cual se mandara si no es admin, mm es como una pantalla root si el admin se logea le deja ver otras cosas y si no las simples me explico? en mi base de datos ya tengo la columna con el area y ya con valores solo me falta decir que si es de tal área haga eso y asi me pueden ayudar?
  #5 (permalink)  
Antiguo 31/01/2013, 11:23
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: login con condicion de area ya esta el usuario y el pass

Cita:
Iniciado por maycolalvarez Ver Mensaje
consulte las políticas del foro, utilice el highlight para mostrar código

el problema es ¿quien determina ésa area?: lo usual es colocar en la tabla de usuario un campo adicional que especifique el tipo de ROL del usuario, de ésa forma puede discriminar y hacer la condición.

en su caso veo que trata de hacer otra consulta para extraer el área de la misma tabla, pero no especifica el usuario, además de que puede hacerlo desde la función de verificar login.

y la determina el usuario, mi tabla esta asi

user/pass/area

dependiendo el usuario que logue, traera un area y dependiendo esa area tiene q mandar a la otra pantalla, espero ser claro, ya valida que el usuario si exista solo me falta que ya que exista te mande a la pantalla correspondiente
  #6 (permalink)  
Antiguo 31/01/2013, 11:25
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: login con condicion de area ya esta el usuario y el pass

Cita:
Iniciado por emmaghost Ver Mensaje
y la determina el usuario, mi tabla esta asi

user pass area

emmanuel 12 admin

benjamin 13 precios

dependiendo el usuario que logue, traera un area y dependiendo esa area tiene q mandar a la otra pantalla, espero ser claro, ya valida que el usuario si exista solo me falta que ya que exista te mande a la pantalla correspondiente, si es emmanuel el que logea lo mande a "root.php" x poner el ejemplo y si es benjamin lo mande a "normal.php" dependiendo del area que traigan
  #7 (permalink)  
Antiguo 31/01/2013, 11:25
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: login con condicion de area ya esta el usuario y el pass

Esta línea tiene que fallar por dos motivos.
Código PHP:
Ver original
  1. if( areaQuePertenece == "admin")

Primero le faltan los paréntesis y luego la función areaQuePertenece()

Código PHP:
Ver original
  1. function areaQuePertenece(){
  2. $sql2 = "SELECT area FROM usuarios";
  3. $rec2 = mysql_query($sql2);
  4. }

no devuelve nada, por lo que estás comparando null == "admin" que nunca será true, por lo que pasará siempre por el else
  #8 (permalink)  
Antiguo 31/01/2013, 11:27
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: login con condicion de area ya esta el usuario y el pass

Cita:
Iniciado por cluster28 Ver Mensaje
Esta línea tiene que fallar por dos motivos.
Código PHP:
Ver original
  1. if( areaQuePertenece == "admin")

Primero le faltan los paréntesis y luego la función areaQuePertenece()

Código PHP:
Ver original
  1. function areaQuePertenece(){
  2. $sql2 = "SELECT area FROM usuarios";
  3. $rec2 = mysql_query($sql2);
  4. }

no devuelve nada, por lo que estás comparando null == "admin" que nunca será true, por lo que pasará siempre por el else

mm ok pro podre ocupar el otro query para comparar? y podras ayudarme en como seria? la vdd ando como en blanco con esta ultima condicion
  #9 (permalink)  
Antiguo 31/01/2013, 11:28
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: login con condicion de area ya esta el usuario y el pass

otro problema que veo es ¿como persistes el usuario logueado?, porque se supone que si te logeas en una página, al entrar en otra dichos datos se pierden, por lo cual debes de usar variables de sesión, con ello y al verificar en el login almacenas en sesión el area y con ello puedes en las otras páginas determinar el rol del usuario.

me temo que tendrá que repasar un poco sus conceptos sobre sessiones y login de usuarios, una forma rápida de aprender es conseguir un código ya hecho y analizarlo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #10 (permalink)  
Antiguo 31/01/2013, 11:45
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: login con condicion de area ya esta el usuario y el pass

Cita:
Iniciado por maycolalvarez Ver Mensaje
otro problema que veo es ¿como persistes el usuario logueado?, porque se supone que si te logeas en una página, al entrar en otra dichos datos se pierden, por lo cual debes de usar variables de sesión, con ello y al verificar en el login almacenas en sesión el area y con ello puedes en las otras páginas determinar el rol del usuario.

me temo que tendrá que repasar un poco sus conceptos sobre sessiones y login de usuarios, una forma rápida de aprender es conseguir un código ya hecho y analizarlo
mm bueno lo guardo asi:

$_SESSION["user"] = $_POST["user"];
  #11 (permalink)  
Antiguo 31/01/2013, 12:09
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: login con condicion de area ya esta el usuario y el pass

Cita:
Iniciado por maycolalvarez Ver Mensaje
otro problema que veo es ¿como persistes el usuario logueado?, porque se supone que si te logeas en una página, al entrar en otra dichos datos se pierden, por lo cual debes de usar variables de sesión, con ello y al verificar en el login almacenas en sesión el area y con ello puedes en las otras páginas determinar el rol del usuario.

me temo que tendrá que repasar un poco sus conceptos sobre sessiones y login de usuarios, una forma rápida de aprender es conseguir un código ya hecho y analizarlo
mm segun yo ya guardo los valores de session me falta segun yo iniciar la session solo que cuando le pongo la de ssession_start(); me sale un letrero de php de session iniciada, y ya no me sale mi php q es lo qpasa¡?
  #12 (permalink)  
Antiguo 31/01/2013, 12:48
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: login con condicion de area ya esta el usuario y el pass

yo desactivaría las sesiones automáticas en el php.ini, la mayoría de hosting lo tienen así, recuerda que lo ideal y recomendado es llamar a session_start(); en cada página, claro puedes centralizar esto en un include general.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #13 (permalink)  
Antiguo 31/01/2013, 12:58
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: login con condicion de area ya esta el usuario y el pass

despues de loguear a un usuario introduce en una session su area despues la verificas .

Código PHP:
Ver original
  1. //login
  2. //consulta
  3. // $_SESSION['AREA']  = $row['area'];
  4.  
  5.  
  6. //verificar en la paginas que procedan
  7. //antes verificar si existe y si contiene un valor
  8. if($_SESSION['AREA'] == 'admin')
  9. {
  10. // codigo para el admin
  11. }
  12. elseif($_SESSION['AREA'] == 'usuarios')
  13. {
  14. // codigo para usuarios
  15. }

session_start()
http://es.php.net/manual/es/function.session-start.php

session auto start
http://es.php.net/manual/es/session....ion.auto-start
  #14 (permalink)  
Antiguo 01/02/2013, 02:08
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: login con condicion de area ya esta el usuario y el pass

He hecho otro código muy parecido pero que queda más reducido y simple.
Código PHP:
Ver original
  1. //Iniciamos sessión
  2.  
  3. function verificar_login($user,$pass)
  4. {
  5.     $sql = "SELECT * FROM usuarios WHERE user ='$user' and pass ='$pass'";
  6.     $rec = mysql_query($sql);
  7.    
  8.     //Tiene que haber un resultado
  9.     if(mysql_num_rows($rec) == 1){
  10.        
  11.         //Devolvemos el objeto de la fila
  12.         return mysql_fetch_object($rec);
  13.        
  14.     //Si no
  15.     }else{
  16.  
  17.         //Devolvemos false
  18.         return false;
  19.     }
  20. }
  21.  
  22. //y aqui ya es donde valido el id y el pass solamente que intento agregar esta
  23. //linea y no me la toma en cuenta que hice mal?
  24.  
  25. if(!isset($_SESSION['userid']))
  26. {
  27.     if(isset($_POST['login']))
  28.     {
  29.         //Si lo que devuelve verificar_login es un array, significa que el usaer y pass son correctos
  30.         if(is_object($obj_user = verificar_login($_POST['user'],$_POST['pass'])))
  31.         {
  32.             $_SESSION['userid'] = $obj_user->idusuario;
  33.             $_SESSION['area'] = $obj_user->area;
  34.  
  35.             //este es el if que necesito que si el area es igual a admin mande a otra pagina
  36.  
  37.             if($obj_user->area == "admin"){
  38.                 header("location: emmatest.php");
  39.             }else{
  40.                 header("location: registro2.php");
  41.             }
  42.         }
  43.         else
  44.         {
  45.             echo '<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
  46.         }
  47.     }
  48. }
  #15 (permalink)  
Antiguo 06/02/2013, 14:00
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: login con condicion de area ya esta el usuario y el pass

perdon apenas me dieron internet de nuevo >.< gracias a todos lo logre solucionar como me indicaron gracias para los que tengan el mismo problema lo solucione como me indico cluster28, muchisimas gracias a todos!! saludos

Etiquetas: area, login, mysql, pass, registro, select, sql, usuario, 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 07:43.