Título: login dependiendo del usuario
Publicado por: chinosf en 14 Mayo 2010, 05:08 am
buenas, nesecito ayuda a ver si es posible, nesecito hacer un login(ya lo tengo hecho) pero que cada usuario cuando se conecta se redireccione a una pagina osea no solo pagina sino tambien folder por ejemplo usuario1 seria /usuario1/datos, usuario2 /usuario2/datos. La idea es que las direcciones esten en la base de datos asi cuando se loguean automaticamente se redireccione el caso es que todos son administradores y no invitados etc si me ayudarán se los agradezco mucho
Título: Re: login dependiendo del usuario
Publicado por: chinosf en 15 Mayo 2010, 04:05 am
Saludos
les cuento para que lo tengo como 'tips' a mano talvez les sirva para otras personas que ya hice una forma para redireccionar a las personas cuando se loguee y es de la siguiente manera:
primero hacemos la validacion de usuarios
if(trim($_POST["usuario"]) != "" && trim($_POST["password"]) != "" ) { $usuario = strtolower(htmlentities($_POST["usuario"], ENT_QUOTES)); $password = $_POST["password"]; $result = mysql_query('SELECT password, usuario, id, url FROM usuarios WHERE usuario=\''.$usuario.'\''); if($row = mysql_fetch_array($result)){ if($row["password"] == $password){ $_SESSION["k_username"] = $row['usuario']; como si es cierto antes de poner la pagina donde queremos que vaya hacemos una variable con la direccion guardada en la base de datos
$_SESSION["url"]= $row['url'] $url=$_SESSION["url"] asi de esta manera simplemente le damos la dirección al header (en mi caso es mas complejo por utilizo el include ya que utilizo una pagina como base) header ('Location:'.$url ); con eso paso la dirección si es verdadero el login sin problemas me costo pero se logro espero que le ayude a alguien más y hasta tambien corregirme si he puesto algun comando malo pero creamen que si funciona
saludos a la comunidad desde Costa Rica
Título: Re: login dependiendo del usuario
Publicado por: miadagio en 15 Mayo 2010, 20:23 pm
io lo ago de otra forma definiendo perfiles. por ejemplo en la base de datos el usuario tiene un tipo y dependiendo del tipo es deribado a su pagina correspondiente. cabe decir que para cada perfil debi contruir un menu con las vistas que solo queria que el viera y en cada inicio de pagina tener la validacion del login y del perfil. <?php session_start(); require('clases/user.class.php'); $rut = $_POST["rut_f1"]; $objUser= new User; $cant=$objUser->u_con($rut); $uss=mysql_num_rows($cant); if ($_POST["oculto_f1"]==1){ $con = mysql_connect("localhost","root","libertad") or die (mysql_error()); mysql_select_db("bd_sc",$con); $pass = $_POST["pass_f1"]; if($uss>0){ echo'<<script type="text/javascript">alert("Esta cuenta esta siendo usada");location.href="index.php";</script>'; }else{ $sql="select count(*) val from user_sis where id_user='$rut' and pass_user='$pass'"; /*cuento los usuarios en la base de datos que tengan el id igual al ingresado */ $sql2="select tipo_user from user_sis where id_user='$rut'"; // selecciono el tipo de empleado $sql3="insert into user_conect(id_user_sis) values('$rut')"; $tipo=mysql_fetch_array(mysql_query($sql2,$con)) or die (mysql_error()); //ejecuto la consulta $fila=mysql_fetch_array(mysql_query($sql,$con)); if($fila["val"]>0){ //busco si hay mas de cero que coinsida mysql_query($sql3,$con); if ($tipo[0]=="ADMINISTRADOR"){ $_SESSION['log']=$rut; //creo una sesion con el rut del usuario $_SESSION['tipouser']=$tipo[0]; //creo una variable que almacena el tipo de usuario echo'<script type="text/javascript">alert("usuario identificado");location.href="administrador/index.php";</script>'; } if ($tipo[0]=="COMERCIAL"){ $_SESSION['log']=$rut; $_SESSION['tipouser']=$tipo[0]; echo'<script type="text/javascript">alert("usuario identificado");location.href="comercial/index.php";</script>'; } if ($tipo[0]=="TECNICO"){ $_SESSION['log']=$rut; $_SESSION['tipouser']=$tipo[0]; echo'<script type="text/javascript">alert("usuario identificado");location.href="tecnico/tecnico.php";</script>'; } }else{ echo'<script type="text/javascript">alert("el usuario o contraseña no coinciden");location.href="index.php";</script>'; error_reporting(E_ALL); } } } ?>
Título: Re: login dependiendo del usuario
Publicado por: scorpion01 en 18 Mayo 2010, 23:38 pm
tambien se me ocurre... no podrias hacer digamos una tabla diferente para cada uno, digamos una en la que solo pongas los admistradores y en otra donde vayan lo usuarios comunes por asi decirlo, es algo que se me ocurre y asi cuando ingrese con su user y pass que primero compare una tabla y si no que se salte a la otra (eso seria cuando ya esten registrados en la web claro esta, porque se supone que tu decides diferenciar a los users que quieras). tambien para no estar haciendo esto manual y toda la onda directamente desde la base de datos puedes crear un archivo php en el cual puedas borrar datos de una tabla (usuarios comunes) y pasar solamente el user y pass a la tabla de admins (solo ocuparias la funcion UPDATE para actualizar datos)
Salu2
Título: Re: login dependiendo del usuario
Publicado por: n3fisto en 11 Junio 2010, 18:28 pm
Mira lo que yo hago es lo siguiente hace mucho tiempo que tengo este codigo no se de quien sera, ni quien lo hizo lo unico hice algunos cambios y lo uso para mis proyectos <?php require_once('../Control/conexiones/Coneccion_Apl.php'); ?> <?php function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { } 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; } } $query_Apl_Login_Usuario = "SELECT * FROM usuarios ORDER BY nivel ASC"; ?> <?php // *** Validate request to login to this site. } $loginFormAction = $_SERVER['PHP_SELF']; if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck']; } if (isset($_POST['usuario'])) { $loginUsername=$_POST['usuario']; $password=$_POST['password']; $MM_fldUserAuthorization = "nivel"; $MM_redirectLoginSuccess = "../Control/Administrador/inicio.php"; $MM_redirectLoginSuccess2 = "../Control/Socio/inicio.php"; $MM_redirectLoginSuccess3 = "../Control/Supervisor/inicio.php"; $MM_redirectLoginFailed = "index.php"; $MM_redirecttoReferrer = false; $LoginRS__query=sprintf("SELECT usuario, clave, nivel FROM usuarios WHERE usuario=%s AND clave=%s", GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); if ($loginFoundUser) { //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && false) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } if($loginStrGroup==1) { header("Location: " . $MM_redirectLoginSuccess ); } if($loginStrGroup==2) { header("Location: " . $MM_redirectLoginSuccess2 ); } if($loginStrGroup==3) { header("Location: " . $MM_redirectLoginSuccess3 ); } } else { header("Location: ". $MM_redirectLoginFailed ); } } ?>
En esta linea de codigo se le da el nivel que puede acceder
En este caso el nivel es 0 como todo usuario puede se admite el ingreso.
En el caso de un admin o lo que se de se cambia el nivel <?php ?>
Al final de la pagina. Pagina del Administrador. <?php //initialize the session } // ** Logout the current user. ** $logoutAction = $_SERVER['PHP_SELF']."?doLogout=true"; if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){ $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){ //to fully log out a visitor we need to clear the session varialbles $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['PrevUrl'] = NULL; unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['PrevUrl']); $logoutGoTo = "../index.php"; if ($logoutGoTo) { header("Location: $logoutGoTo"); } } ?> <?php } $MM_authorizedUsers = "1"; $MM_donotCheckaccess = "false"; // *** Restrict Access To Page: Grant or deny access to this page function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { // For security, start by assuming the visitor is NOT authorized. $isValid = False; // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. // Therefore, we know that a user is NOT logged in if that Session variable is blank. // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. // Parse the strings into arrays. $arrUsers = Explode(",", $strUsers); $arrGroups = Explode(",", $strGroups); $isValid = true; } // Or, you may restrict access to only certain users based on their username. $isValid = true; } if (($strUsers == "") && false) { $isValid = true; } } return $isValid; } $MM_restrictGoTo = "../index.php"; if (!((isset($_SESSION['MM_Username'])) && (isAuthorized ("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) { $MM_qsChar = "?"; $MM_referrer = $_SERVER['PHP_SELF']; if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&"; $MM_referrer .= "?" . $QUERY_STRING; $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer); header("Location: ". $MM_restrictGoTo); } ?>
En este punto de codigo se define, cual es el nivel de acceso $MM_authorizedUsers = "1"; $MM_donotCheckaccess = "false";
Espero que te ayude
|