Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sesiones autenticando Aministrador y usuarios Normales

Estas en el tema de Sesiones autenticando Aministrador y usuarios Normales en el foro de PHP en Foros del Web. Como hago para hacer algo con respecto al inicio de sesion quiero que si el administrador entra que muestre una pagina de administracion y cualquier ...
  #1 (permalink)  
Antiguo 14/03/2013, 16:27
Usuario no validado
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Sesiones autenticando Aministrador y usuarios Normales

Como hago
para hacer algo
con respecto al inicio de sesion
quiero
que si el administrador entra
que muestre una pagina de administracion
y cualquier usuario normal
que es le muestre
una pagina de usuarios normales
Por favoor nesecito de su ayuda! por favor espero sus respuestas
  #2 (permalink)  
Antiguo 14/03/2013, 20:10
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Sesiones autenticando Aministrador y usuarios Normales

tendrías que poner un campo en la tabla usuarios que se llame por ejemplo categoria_usuario, y ahi pondras un numero, por ejemplo si es 1 es admin, si es 2 es ussuario comun, etc etc
__________________
la la la
  #3 (permalink)  
Antiguo 14/03/2013, 20:50
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Sesiones autenticando Aministrador y usuarios Normales

Yo lo hago como lo dice truman_truman creo una tabla llamada cargos y ese id se lo asigno como foranea a la tabla usuarios y al validar el usuario tambien validas si el id le corresponde o no.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #4 (permalink)  
Antiguo 14/03/2013, 21:16
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Sesiones autenticando Aministrador y usuarios Normales

Investiga un poco sobre ACL o RBAC que en ese camino es que va tu tema al entender estos te aseguro que llegas a la solución de lo que estas preguntando, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 15/03/2013, 07:23
 
Fecha de Ingreso: marzo-2013
Mensajes: 16
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Sesiones autenticando Aministrador y usuarios Normales

prueba con esto

logear.php
Código PHP:
Ver original
  1. <?php
  2. //inicio la sesion para tener acceso a la creacion de las variables de sesion
  3. //recibo el nombre y la contraseña ingresados por el usuario en el formulario de logeo
  4. $usuario = $_POST["usuario"];
  5. $clave = trim($_POST["clave"]);
  6.  
  7. // importo la clase conexion
  8. require_once "mySQLData.php";
  9. //inicializo la clase para acceder a sus atributos atravez del objeto "base"
  10. $base = new mySQLData();
  11. //ejecuto la consulta buscando el nombre y la contraseña ingresados por el usuario
  12. $result = $base->consulta("SELECT * FROM acceso WHERE usuario='$usuario' AND clave='$clave'");
  13. //almaceno en "arreglo" en los resultados
  14. $arreglo = mysql_fetch_assoc($result);
  15. //si los resultados son igual a 1 (solo puede haber un usuario con el mismo usuario y contraseña)
  16. if(mysql_num_rows($result) == 1){
  17.     //creo las variables de sesion tipo y usuario con los valores obtenidos en la consulta sql
  18.     $_SESSION["tipo"] = $arreglo['tipo_acceso'];
  19.    $_SESSION["usuario"] = $arreglo['usuario'];
  20.    
  21.     /*me redirecciono al index nuevamente pero en esta ocasion ya se ha creado la sesion
  22.     por lo que se autenticara con el scrip del index y mostrara la pantalla de bienvenida al usuario
  23.     */
  24.     header("location:index.php");
  25. }
  26. else{
  27.     ?>
  28.     <!--Una alerta para indicar al usuario que ha cometido un error de logeo
  29.    
  30.     -->
  31.     <script language="javascript" type="text/javascript">
  32.         document.location.href="index.php";
  33.         alert('Sus Datos son Incorrectos. Intente nuevamente');
  34.     </script>
  35.     <?php
  36. }
  37. ?>

y un index
Código PHP:
Ver original
  1. <?php
  2.         //comprueba si no se ha creado la sesion    
  3.         if(!isset($_SESSION)){
  4.             //inicia la sesion
  5.             session_start();
  6.             //si la variable de sesion "usuario" no se ha creado o esta null
  7.             if(empty($_SESSION['usuario'])){
  8.                 ?>
  9.                 <!--Muestra el ambiente de bienvenida y notifica que no ha iniciado sesion-->
  10.                
  11.                 <h2>No se ha iniciado sesion</h2>
  12.                 <!--Incluye por medio de Ajax(jQuery con la funcion load) el formulario de inicio de sesion
  13.                 dentro del section con id contenido.-->
  14.                
  15.                 <script type="text/javascript">
  16.                 $(document).ready(function(){
  17.                        $("#contenido").load("frmLogueo.php");        
  18.                 });                  
  19.                 </script>        
  20.                 <?php
  21.             //en caso que la variable de sesion "usuario" tenga un valor
  22.             //significa que ya se ha creado una sesion    
  23.             }else{
  24.                 //Muestra la bienvenida personalizada al usuario logeado con su nombre
  25.                 echo "<h1>Bienvenido usuario: ". $_SESSION['usuario']." </h1>";  
  26.                
  27.                 //este es un vinculo para poder regresar al inicio del sitio
  28.                 echo "<a href='index.php'>Inicio</a>";
  29.                 //si el usuario esta logeado se debe verificar cual el su rol o nivel de acceso(ADMIN, usuario normal)
  30.                 //para poder gestionar sus derechos de acceso.
  31.                 //si el rol del usuario logeado es cliente.
  32.                 if($_SESSION['tipo']=='otro usuario2'){
  33.                 ?>
  34.                 <!--Llamamos a las funcionalidades y la pantalla de bienvenida (home) de las Mesas tecnologicas-->
  35.                 <!--Incluye por medio de Ajax(jQuery con la funcion load) la pantalla con las funciones del CLIENTE
  36.                 dentro del section con id contenido.-->    
  37.                     <script type="text/javascript">
  38.                         $(document).ready(function(){
  39.                         $("#contenido").load("homeCliente.php");
  40.                         });
  41.                     </script>
  42.                 <?php
  43.                 }else{
  44.     if($_SESSION['tipo']=='cliente'){
  45.                 ?>
  46.                 <!--Llamamos a las funcionalidades y la pantalla de bienvenida (home) de las Mesas tecnologicas-->
  47.                 <!--Incluye por medio de Ajax(jQuery con la funcion load) la pantalla con las funciones del CLIENTE
  48.  
  49.                 dentro del section con id contenido.-->    
  50.                     <script type="text/javascript">
  51.                         $(document).ready(function(){
  52.                         $("#contenido").load("home.php");
  53.                         });
  54.                     </script>
  55.                 <?php
  56.                 }else{
  57.  if($_SESSION['tipo']=='otro usuario'){
  58.                 ?>
  59.                 <!--Llamamos a las funcionalidades y la pantalla de bienvenida (home) de las Mesas tecnologicas-->
  60.                 <!--Incluye por medio de Ajax(jQuery con la funcion load) la pantalla con las funciones del CLIENTE
  61.  
  62.                 dentro del section con id contenido.-->    
  63.                     <script type="text/javascript">
  64.                         $(document).ready(function(){
  65.                         $("#contenido").load("hometele.php");
  66.                         });
  67.                     </script>
  68.                 <?php
  69.                 }else{
  70.                    ?>
  71.                    
  72.                     <!--Llamamos a las funcionalidades y la pantalla de bienvenida (home) del administrador-->
  73.                     <!--Incluye por medio de Ajax(jQuery con la funcion load) la pantalla con las funciones del ADMINISTRADOR
  74.                 dentro del section con id contenido.-->  
  75.                  
  76.                     <script type="text/javascript">
  77.                         $(document).ready(function(){
  78.                         $("#contenido").load("homeAdmin.php");
  79.                         });
  80.                     </script>
  81.                     <?php
  82.                 }        
  83.             }
  84.         }
  85. }
  86.         }
  87.     ?>

si te fijas en un codigo en ajax los formularios los trae $("#contenido").load("home.php"); por ejemplo dependiendo del usuario q ingresa trae el sitio correspondiente


en la bd debes tener un tipo_acceso para que te tome esto
$_SESSION["tipo"] = $arreglo['tipo_acceso']; o lo cambias dependiendo de eso veras si es usuario normal, admin o lo de mas que quieras agregar
  #6 (permalink)  
Antiguo 15/03/2013, 08:24
Avatar de emcl21  
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Sesiones autenticando Aministrador y usuarios Normales

En el Index metes este codigo en las primeras lineas :
<?
session_start();
if (isset($_SESSION['s_username'])) {
}else{
header ( "Location: login.php" );
}
?>

en la web Login.php

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login</title>
</head>

<body>
<table width="343" border="0" cellpadding="5" cellspacing="5">
<tr>
<td width="180" ><u class="Estilo4">Login:</u></td>
<td width="128">&nbsp;</td>
</tr>
</table>
<form id="form1" name="form1" method="post" action="scriptLogin.php">
<table width="200" border="0" cellspacing="5" cellpadding="5">
<tr>
<td >Usuario:</td>
<td><input name="usuario" type="text" id="usuario" value="" size="10" maxlength="10" /></td>
</tr>
<tr>
<td >Contrase&ntilde;a:</td>
<td><input name="passwd" type="password" class="Estilo2" id="passwd" value="" size="10" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input type="submit" name="Submit" value="Aceptar" />
</label></td>
</tr>
</table>
</form>
<p ><? echo $_REQUEST[mensaje]; ?></p>
</body>
</html>


Y por ultimo el scriptlogin :

<?
require( "conectar.php" ); //conecta a bd
session_start();
$entro=false;
if ($_POST['usuario']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['usuario'];
$password=$_POST['passwd'];
if ($password==NULL) {
$mensaje="* La Contraseña no fue ingresado";
header ( "Location: login.php?mensaje=$mensaje");
$entro=true;
}
else {
$query = mysql_query("SELECT USUARIO,PASSWD FROM Vendedores WHERE USUARIO = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['PASSWD'] != $password) {
$mensaje="* Usuario o Contraseña incorrecto";
header ( "Location: login.php?mensaje=$mensaje" );
$entro=true;
}
else
{
$query = mysql_query("SELECT USUARIO,PASSWD FROM Vendedores WHERE USUARIO = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['USUARIO'];
header ( "Location: index.php" );
$entro=true;
}
}
}

if ($entro==false)
{
$mensaje="* El usuario no fue ingresado";
header ( "Location: login.php?mensaje=$mensaje");
}
?>
  #7 (permalink)  
Antiguo 15/03/2013, 08:29
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Sesiones autenticando Aministrador y usuarios Normales

Cita:
Iniciado por kpca Ver Mensaje
Como hago
para hacer algo
con respecto al inicio de sesion
quiero
que si el administrador entra
que muestre una pagina de administracion
y cualquier usuario normal
que es le muestre
una pagina de usuarios normales
Por favoor nesecito de su ayuda! por favor espero sus respuestas
En el foro se resuelven dudas especificas. Si no tienes código que mostrarnos solo podremos orientarte. Yo recomendaría que en tu base de datos tengas un campo con el nivel de permisos, luego al loguearte recuperas esos permisos, los guardas en sesión y los utilizas a gusto.

Y por favor, haznos el favor de redactar mejor tus post.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #8 (permalink)  
Antiguo 15/03/2013, 10:00
Usuario no validado
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Sesiones autenticando Aministrador y usuarios Normales

Muchas Gracias a todos Ya resolví el Problema!!!!
  #9 (permalink)  
Antiguo 15/03/2013, 10:25
Usuario no validado
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Sesiones autenticando Aministrador y usuarios Normales

Hice lo Siguiente!!!!
Aquí esta el Código:

index.php //que contiene el formulario de inicio de sesión//
-------------------------------------------------------------------------
<?
session_start();
include('config.php');

# @ Comprobando que se enviaron datos por el formulario
if($_POST){

$nombre=$_POST['usuario'];
$clave=$_POST['clave'];

$result=mysql_query(
"SELECT * FROM admin
WHERE
IdUser='$nombre'
AND
Password='$clave'
");


$datos=mysql_fetch_array($result);



# @ Comprobando que los datos son correctos
if (mysql_num_rows($result)) {
$_SESSION['status']=true;
$_SESSION['nivel']=$datos['rol'];
}
}
?>


<? if($_SESSION['status']!==true){
?>


<h1>FORMULARIO DE INICIO DE SESION</h1>

<form action='' method="post">

<label>Usuario</label>
<input name="usuario" required placeholder="Nombre de usuario">

<label>Clave</label>
<input name="clave" type="password" required placeholder="*********">

<input type="submit" value="Iniciar sesion"/>

</form>

<?}else{?>
<?
include ('admin.php');
include ('operacion.php');

}
?>
---------------------------------------------------------------------------------------
Admin.php //pagina a donde mandan al administrador al logearse//
---------------------------------------------------------------------------------------

$nivel=$_SESSION['nivel'];
?>
<br><a href="logout.php">Cerrar sesion</a>


<?php if($nivel==0) {?>
<center><h3>INGRESE LOS NUMEROS</h3></center>

<form action='' name="form" method="post">
<table border="0" width="30%" align="center">
<tr>
<td>Numero uno:</td> <td><input type="text" name="n1"<br></td>
</tr>
<tr>
<td>Numero dos</td> <td><input type="text" name="n2"><br></td>
</tr>
<tr>
<td>Elija una Operacion:-></td>
<td>
<select name="operacion">
<option value="1">Suma</option>
<option value="2">Resta</option>
<option value="3">Multiplicacion</option>
<option value="4">Divicion</option>
</select>
</td>
</tr>
</table>
<br>
<center> <input type="submit" value="Calcular"><input type="reset" value="Restablecer">
</center>
</form>
<?php } else
{
include ('user.php'); # @ Esta es la pagina a la que mandan a los usuarios normales al momento de logearse

}?>

En este caso el Rol para administrador es =o
y para los usuarios normales es =1

Etiquetas: sesiones, 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 02:46.