Foros del Web » Programando para Internet » PHP »

Logueo 3 diferentes usuarios distintas tablas

Estas en el tema de Logueo 3 diferentes usuarios distintas tablas en el foro de PHP en Foros del Web. Hola a todos tengo el siguiente código para logueo... funciona bien pero necesito que ese mismo sirva para otros dos tipos de usuario el error ...
  #1 (permalink)  
Antiguo 09/12/2011, 12:28
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Logueo 3 diferentes usuarios distintas tablas

Hola a todos tengo el siguiente código para logueo... funciona bien pero necesito que ese mismo sirva para otros dos tipos de usuario el error es que manejo tablas diferentes asi que no se si se pueda :(
Código PHP:
<?php require_once('Connections/connection.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}
?>
<?php
// *** Validar solicitud para ingresar a este sitio.
if (!isset($_SESSION)) {
  
session_start();
}

$loginFormAction $_SERVER['PHP_SELF'];
if (isset(
$_GET['accesscheck'])) {
  
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset(
$_POST['log'])) {
  
$loginUsername=$_POST['log'];
  
$password=$_POST['pwd'];
  
$MM_fldUserAuthorization "nivel";
  
$MM_redirectLoginSuccess "Menu.php";
  
$MM_redirectLoginFailed "index.php";
  
$MM_redirecttoReferrer true;
  
mysql_select_db($database_connection$connection);
      
  
$LoginRS__query=sprintf("SELECT usuario, password, nivel FROM usuarios_alumnos WHERE usuario=%s AND password=%s Union SELECT usuario, password, nivel FROM usuarios_docentes WHERE usuario=%s AND password=%s",
  
GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text"),  GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text")); 
   
   
   
  
$LoginRS mysql_query($LoginRS__query$connection) or die(mysql_error());
  
$loginFoundUser mysql_num_rows($LoginRS);
  if (
$loginFoundUser) {
    
    
$loginStrGroup  mysql_result($LoginRS,0,'nivel');
    
    
//declare two session variables and assign them
    
$_SESSION['MM_Username'] = $loginUsername;
    
$_SESSION['MM_UserGroup'] = $loginStrGroup;          

    if (isset(
$_SESSION['PrevUrl']) && true) {
      
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];    
    }
    
$_SESSION["mivariabledesesion"]=$loginUsername;
//mivariable=$v1;
session_register("mivariabledesesion");
    
header("Location: " $MM_redirectLoginSuccess );
  }
  else {
    
header("Location: "$MM_redirectLoginFailed );
  }
}
?>
Lo que hice fue hacer una union en la consulta
Código PHP:
$LoginRS__query=sprintf("SELECT usuario, password, nivel FROM usuarios_alumnos WHERE usuario=%s AND password=%s Union SELECT usuario, password, nivel FROM usuarios_docentes WHERE usuario=%s AND password=%s",
  
GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text"),  GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text")); 
Para que funcione para dos tablas distintas... pero no se como hacer esto ...
Si entra ya se de una tabla o de otra pero ingresa a
$MM_redirectLoginSuccess = "Menu.php";

Como puedo hacer que amm si es de la tabla 2 mande a otra pagina????

Es posible o tengo q manejar logueos diferentes????
  #2 (permalink)  
Antiguo 09/12/2011, 12:35
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Logueo 3 diferentes usuarios distintas tablas

Una pregunta... ¿realmente cambian tanto los datos como para merecer hacer una tabla por cad tipo de usuario? ¿No te sería más fácil una sola tabla con un campo que te indique el tipo de usuario?

Si aún necesitas separar los datos por tablas, tan sólo por claridad y considerando que deberían ser datos diferentes, te recomendaría hacer lo siguiente para que el login sea transparente al usuario:
Buscar datos en una tabla, digamos la de alumnos, si no existe en la de docentes, y así vas buscando en diferentes tablas, si no existe en ninguna marcas el error de login.

No obstante, manejar usuarios en tablas distintas, te obliga a hacer comparaciones mayores para verificar que un usuario no existe en las otras tablas.
  #3 (permalink)  
Antiguo 09/12/2011, 12:40
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Logueo 3 diferentes usuarios distintas tablas

Cita:
Iniciado por ocp001a Ver Mensaje
Una pregunta... ¿realmente cambian tanto los datos como para merecer hacer una tabla por cad tipo de usuario? ¿No te sería más fácil una sola tabla con un campo que te indique el tipo de usuario?

Si aún necesitas separar los datos por tablas, tan sólo por claridad y considerando que deberían ser datos diferentes, te recomendaría hacer lo siguiente para que el login sea transparente al usuario:
Buscar datos en una tabla, digamos la de alumnos, si no existe en la de docentes, y así vas buscando en diferentes tablas, si no existe en ninguna marcas el error de login.

No obstante, manejar usuarios en tablas distintas, te obliga a hacer comparaciones mayores para verificar que un usuario no existe en las otras tablas.
Gracias por responder pues las tablas son diferentes.... lo que paso es que la BD es de otro sistema osea esa bd alimenta a 2 sistemas diferentes asi que no puedo dejarlos usuarios en una sola puesto que asi se planteo para el primer sistema.... entonces me es mas viable manejar logueos diferentes???
  #4 (permalink)  
Antiguo 09/12/2011, 13:30
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Logueo 3 diferentes usuarios distintas tablas

Puedes hacer "logueos" diferentes, si a los usuarios les das una dirección tipo

www.misitio.com/alumnos

www.misitio.com/docentes

Así tan sencillo puedes tener distintos tipos de login.

Por otra parte si quieres que sea transparente al usuario, puedes hacer como te indicaba, hacer el login buscando datos en una tabla, si existen, sacar los datos pertinentes, hacer el login y listo.

Si no, busca en otra tabla, si existe el usuario, hacer el login con sus parámetros correspondientes, si no, pasar a la otra tabla y así sucesivamente.

Etiquetas: distintas, logueo, mysql, sql, tabla, tablas, usuarios, variables
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 05:10.