Foros del Web » Programando para Internet » PHP »

Que la página del admin solo la pueda visualizar el administrador

Estas en el tema de Que la página del admin solo la pueda visualizar el administrador en el foro de PHP en Foros del Web. Amigos estoy haciendo un sistema trabajando con sesiones para que asi el administrador vea todos los reportes y los usuarios normales solo tengan acceso a ...
  #1 (permalink)  
Antiguo 13/03/2014, 11:29
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta Que la página del admin solo la pueda visualizar el administrador

Amigos estoy haciendo un sistema trabajando con sesiones para que asi el administrador vea todos los reportes y los usuarios normales solo tengan acceso a sus propios reportes, mi problema es que si el usuario normal conoce el nombre del link del administrador lo puede ver sin problemas, ojala me puedan ayudar
Gracias!
  #2 (permalink)  
Antiguo 13/03/2014, 11:36
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Que la página del admin solo la pueda visualizar el administrador

Usa sesiones y permisos (y el buscador)
  #3 (permalink)  
Antiguo 13/03/2014, 11:38
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Que la página del admin solo la pueda visualizar el administrador

Puedes crear una tabla en tu DB con los nombres de los usuarios que sí tienen acceso y a la hora de acceder a ese apartado haces la petición y si no hay resultados lanzar un mensaje de aviso.
  #4 (permalink)  
Antiguo 13/03/2014, 11:40
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Que la página del admin solo la pueda visualizar el administrador

Cita:
Iniciado por rachpts Ver Mensaje
Amigos estoy haciendo un sistema trabajando con sesiones para que asi el administrador vea todos los reportes y los usuarios normales solo tengan acceso a sus propios reportes, mi problema es que si el usuario normal conoce el nombre del link del administrador lo puede ver sin problemas, ojala me puedan ayudar
Gracias!
Eso lo logras clasificando tus usuarios y después mediante un if comprobar que el usuario es de esa clasificación
Ejemplo:
Código HTML:
Ver original
  1. if($user->isAdmin()){
  2. //hacer lo del adminitrador
  3. }
En terminos generales tienes que comprobar que el usuario que intenta acceder a la pagina, rutina, o bloque de codigo sea el que esperas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 13/03/2014, 11:42
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Que la página del admin solo la pueda visualizar el administrador

Como te dijo ocp001a usando sessiones, puedes poner algo como esto en el inicio de las paginas del administrador:

Código PHP:
Ver original
  1. if (isset($_SESSION['usuario']) != 'Admin')
  2. header("Location: ../index.php");
  #6 (permalink)  
Antiguo 13/03/2014, 11:54
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Que la página del admin solo la pueda visualizar el administrador

miren les pongo mi codigo que muestra la autentificación del usuario


<?php
include "conexion.php";

$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
$sql = "SELECT usuario_id, user, pass, permiso FROM usuarios WHERE user='".$usuario_nombre."' AND pass='".$usuario_clave."'";
$result = mysql_query($sql) or die("Imposible verificar al usuario por el error: " . mysql_error());
$dato = mysql_fetch_array($result);
if(mysql_num_rows($result) == 1){
//usuario y contraseña válidos
//session_name("loginusuario");
//asigno un nombre a la sesión para poder guardar diferentes datos
session_start();
//session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
//cambiamos la duración a la cookie de la sesión
// inicio la sesión
$_SESSION["autentificado"]= "SI";
$_SESSION["user"]= $dato['user'];
$_SESSION["permiso"]= $dato['permiso'];
//defino la sesión que demuestra que el usuario está autorizado
$_SESSION["ultimoacceso"]= date("Y-n-j H:i:s");

if($_SESSION["permiso"]=='1')//verifica permiso
header("Location:admin.php");//redireccionamiento;
else
if($_SESSION["permiso"]=='2')
header("Location:inicio.php");//redireccionamiento;

}else {
//si no existe le mando otra vez a la portada
header("Location: login.php?errorusuario=si");
}

?>


la cuestion es que si el usuario normal conoce el link del adminisitrador igual se puede meter y es lo que necesito evitar
  #7 (permalink)  
Antiguo 13/03/2014, 12:31
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Sonrisa Respuesta: Que la página del admin solo la pueda visualizar el administrador

tu problema es de facil solucion lo que deberias hacer es 2 menu uno para los usuario y el otro para el administrador y en el campo usuarios agregar un campo que se llame privilegios ej admin es 1 y user 2
entonces cuando el usuario se loguee guarda la variable privilegio
entonces por ejemplo cuando tengas que CARGAR el menu lo llamas asi

Código PHP:
Ver original
  1. <?php
  2.          
  3.     if ($tipo =="1"){
  4.         include("madmin.php");
  5.     }
  6.  if ($tipo =="2"){
  7.         include("user.php");
  8.     }
  9.  
  10.  ?>
  #8 (permalink)  
Antiguo 14/03/2014, 11:55
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Que la página del admin solo la pueda visualizar el administrador

me sigue pasando lo mismo :s al iniciar sesion si me manda a la pagina del administrador o del usuario normal pero lo malo es que si el usuario normal sabe el link del admin puede tener acceso, alguien que me pueda explicar ?
  #9 (permalink)  
Antiguo 14/03/2014, 12:10
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Que la página del admin solo la pueda visualizar el administrador

Cita:
Iniciado por rachpts Ver Mensaje
me sigue pasando lo mismo :s al iniciar sesion si me manda a la pagina del administrador o del usuario normal pero lo malo es que si el usuario normal sabe el link del admin puede tener acceso, alguien que me pueda explicar ?
El problema no lo tienes en este script.
El script esta bien planteado y ejecutado, el problema seguro que esta en el script de admin.php
El problema es que el script admin.php no sabe lo que has hecho antes de la redireccion y debes comprobar el valor de acceso para usar tu sistema de seguridad
podrias incluir esto
Para admin.php
Código PHP:
if(isset($_SESSION["permiso"]) && $_SESSION["permiso"] !== '1'
header("Location:inicio.php"); 
//Aqui todo el codigo a ejecutar si se poseen permiso de tipo administrador 
De este modo aunque accedan al script por url se le redireccionara si no existe la variable de permiso o tiene un valor distinto al admitido.

Antes de que me preguntes, esto lo debes incluir al principio del script admin.php justo en la linea de despues de session_start();

Te aconsejo que sean las primeras lineas que tengas en tu script para que no envie al navegador ningun mensaje y la redireccion en caso de falta de permisos pueda realizarse sin problemas.

Última edición por Dalam; 14/03/2014 a las 12:41
  #10 (permalink)  
Antiguo 14/03/2014, 13:21
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Que la página del admin solo la pueda visualizar el administrador

Dalam Gracias por la ayuda ya lo hice como me dijiste y no me funciona
alguna otra idea?
  #11 (permalink)  
Antiguo 14/03/2014, 13:26
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Sonrisa Respuesta: Que la página del admin solo la pueda visualizar el administrador

mira yo tuve que hacer una intranet con muchas jerarquias de usuarios y cada uno entra a un portal en el control del loguin hago esto

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");// hacemos una conexion a la bd
  3. foreach($HTTP_POST_VARS as $key => $value)
  4. ${$key}=$value;
  5. //Llamada a funcion conexión y selección de bd.
  6. conectar();
  7. $rut = $_POST["rut"];
  8. /*Quita puntos retorno funcion rut*/
  9. $rut= str_replace('.', '', $rut);
  10. $clave = $_POST["clave"];
  11. $clave = md5($clave);
  12.  
  13. if (($rut != "") && ($clave !="" )){
  14.     //realizamos una consulta a la bd
  15.     $query = mysql_query("select * from usuarios where rut='$rut' and clave='$clave'");
  16.  
  17.     //definimos un array
  18.     $array = mysql_fetch_array($query);
  19.  
  20.     //realizamos un array de los campos que contienen el usuario y la contraseña
  21.     $arut = ($array["rut"]);
  22.     $aclave = ($array["clave"]);
  23.     $atipo = ($array["tipo"]);
  24.     //vemos si el usuario y contraseña es váildo
  25.     //llamamos los arrays en las siguiente linea.
  26.     if ($rut==$arut && $clave==$aclave){
  27.         //usuario y contraseña válidos
  28.         //defino una sesion y guardo datos
  29.         session_start();
  30.        
  31.         $autentificado = "SI";
  32.         $_SESSION["autentificado"] = $autentificado;
  33.         $_SESSION["coduser"] = $rut;
  34.         $_SESSION["tipo"] = $atipo;
  35.        
  36.         /* agrego la funcion para poder re dirigir de acuerdo al tipo de usuario  */
  37.         //redirijo al archivo
  38.         if ($atipo==0){
  39.             header ("Location: index.php");
  40.             exit;
  41.         }
  42.         if ($atipo==1){
  43.             echo"va ser re dirigido a panel de administrador";
  44.             header ("Location: indexad.php");
  45.             exit;
  46.         }
  47.         if ($atipo==2){
  48.         echo"va ser re dirigido a panel de secretaria";
  49.         header ("Location: index.php");
  50.         exit;
  51.         }
  52.         if ($atipo==3){
  53.             echo"va ser re dirigido a panel de jefatura";
  54.         header ("Location: indexjd.php");
  55.         exit;
  56.         }
  57.         if ($atipo==4){
  58.             echo"va ser re dirigido a panel de jefe de dpto";
  59.         header ("Location: indexja.php");
  60.         exit;
  61.         }
  62.         if ($atipo==5){
  63.             echo"va ser re dirigido a panel de jefe de dpto";
  64.         header ("Location: indexrrhh.php");
  65.         exit;
  66.         }
  67.         if ($atipo==6){
  68.             echo"va ser re dirigido a panel de jefe de dpto";
  69.         header ("Location: index2.php");
  70.         exit;
  71.         }
  72.  
  73. //finalizo el recorrido de la variable     
  74.     //  header ("Location: index.php");
  75.         //exit;
  76.     }else{
  77.         //si no existe mando otra vez a la portada
  78.         header("Location: inicio.php?e=s");
  79.         exit;
  80.     }
  81. }else{
  82.     //si no existe  mando otra vez a la portada
  83.     header("Location: inicio.php?e=s");
  84. }
  85. ?>
  #12 (permalink)  
Antiguo 14/03/2014, 13:26
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Que la página del admin solo la pueda visualizar el administrador

entonces prueba asi
Código PHP:
Ver original
  1. if(isset($_SESSION["permiso"]) && $_SESSION["permiso"] !== '1'){
  2. header("Location:inicio.php");
  3. exit(0);
  4. }
  5. //Aqui todo el codigo a ejecutar si se poseen permiso de tipo administrador
  #13 (permalink)  
Antiguo 14/03/2014, 17:10
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Que la página del admin solo la pueda visualizar el administrador

Gracias a todos por la ayuda... Dalam muchas gracias ya lo hice como me dijiste y ya no me deja ver lo del administrador pero me carga un mensaje "Esta página web tiene un bucle de redireccionamiento" voy a ver la manera de quitar este error pero muchas gracias

Etiquetas: admin, administrador, página, 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:00.