Foros del Web » Programando para Internet » PHP »

Proteger pagina con usuario privilegiado

Estas en el tema de Proteger pagina con usuario privilegiado en el foro de PHP en Foros del Web. Buenas, Amigos necesito proteger una pagina con privilegio, ya que solo un usuario podría eliminar datos. En la BD de usuario tengo los campos @import ...
  #1 (permalink)  
Antiguo 30/07/2012, 14:08
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 3 meses
Puntos: 0
Proteger pagina con usuario privilegiado

Buenas,

Amigos necesito proteger una pagina con privilegio, ya que solo un usuario podría eliminar datos.


En la BD de usuario tengo los campos

Código MySQL:
Ver original
  1. id, usuario, password, rol

Los roles son: todos (con acceso a todo) y limitado (con acceso limitado a la pagina)

Como podría hacerlo?

Este es el codigo que tengo en la pagina index.php para que me exija el login si no estoy logueado:

Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['username'])){
header("Location: login.php");
}
?>
Este es el codigo php que permite el login:

Código PHP:
<?php 

$username 
$_POST['username'];
$password $_POST['password'];
$com $_POST['com'];

function 
Conectarse() 

$link mysql_connect("localhost","root","movilnet2012") or die('Error conectando a la base de datos.');
mysql_select_db("centralmovilnet",$link) or die('Error seleccionando la base de datos.');
return 
$link


$link Conectarse();

$result mysql_query("SELECT * FROM usuarios WHERE username='$username' AND password='$password' AND com='$com'",$link);

if (!
$result) {
echo(
"<p>Error: " mysql_error() . "</p>");
exit();
}

if(
mysql_num_rows($result) == 1){ //solamente puede haber un resultado!
$Login mysql_result($result,0,'username'); //mejor usa mysql_result cuando tu resultado sea de un solo row
$Password mysql_result($result,0,'password');
$com mysql_result($result,0,'com');
session_start();
session_register(); //hay algunos servers que requieren register :)
$_SESSION['username']=$username;
$_SESSION['password']=$password;
$_SESSION['com']=$com;
header("Location: index.php");
} else {
header("Location: login.php");
}
?>
  #2 (permalink)  
Antiguo 30/07/2012, 14:49
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Proteger pagina con usuario privilegiado

No colocas una duda concreta, preguntas algo muy general.

Yo te aconsejaría que a cada usuario se le pueda crear una serie de permisos o privilegios, los cuales al momento del login se leen y se colocan en sesión, para que cuando entren a una sección que lo requiera, dicha sección permita o impida el acceso, así como mostrar o no las opciones de borrar, crear etc.
  #3 (permalink)  
Antiguo 30/07/2012, 14:57
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Proteger pagina con usuario privilegiado

Sí, cada usuario tiene su privilegio, hay uno que solo deberia tener el privilegio de borrar un archivo creado.

Pero no sé como establecer la session.
  #4 (permalink)  
Antiguo 30/07/2012, 15:08
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proteger pagina con usuario privilegiado

hola amigo , en el momento de3 registrarse le tienes que dar los privilegios oportunos y guardarlos en la bd

luego tienes 2 opciones

-1 en el momento de login recojes el valor de privilegio en la bd y lo insertamos en una session y despues en las partes donde valides privilegios lo comparamos para dar acceso o no

-2 en las partes donde necesites validar un privilegio realizas una consulta en la bd y comparamos ese valor
  #5 (permalink)  
Antiguo 30/07/2012, 15:22
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Proteger pagina con usuario privilegiado

Tengo este codigo en la pagina donde protejo, pero necesito es desabilitar una imagen si no es el usuario con provilegio 1

Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['username'])){
header("Location: login.php");
}
?>
  #6 (permalink)  
Antiguo 30/07/2012, 15:36
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Proteger pagina con usuario privilegiado

Necesito mostrar un link/imagen con solo un usuario llamado "root"

Si estoy logueado con "root" me deberia aparecer todo esto normal, pero si no estoy logueado con "root" me debe quitar esta linea:

echo("<td width='5%'><a href='borrar.php?id=$id' class='estilo'><img src='images/eliminar.png' title='Eliminar'></a></td>\n");
echo "</tr>";


El codigo es:
Cita:
echo("<tr>\n");
echo("<td width='5%'>" . $row["tecnologia"] . "</td>\n");
echo("<td width='5%'>" . $row["equipo"] . "</td>\n");
echo("<td width='10%'>" . $row["nombre"] . "</td>\n");
echo("<td width='5%'>" . $row["serial_mv"] . "</td>\n");
echo("<td width='5%'>" . $row["serial_e"] . "</td>\n");
echo("<td width='5%'>" . $row["cod_m"] . "</td>\n");
echo("<td width='5%'>" . $row["cod_p"] . "</td>\n");
echo("<td width='10%'>" . $row["fecha_i"] . "</td>\n");
echo("<td width='10%'>" . $row["usuario_i"] . "</td>\n");
echo("<td width='10%'>" . $row["com_i"] . "</td>\n");
echo("<td width='5%'>" . $row["fecha_s"] . "</td>\n");
echo("<td width='5%'>" . $row["usuario_s"] . "</td>\n");
echo("<td width='10%'>" . $row["com_s"] . "</td>\n");
echo("<td width='5%'><a href='borrar.php?id=$id' class='estilo'><img src='images/eliminar.png' title='Eliminar'></a></td>\n");
echo "</tr>";



}
echo "</table>";


?>
  #7 (permalink)  
Antiguo 30/07/2012, 15:42
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proteger pagina con usuario privilegiado

pues igual que has echo aqui pero con la session de privilegios

<?php
session_start();
if (!isset($_SESSION['username'])){
header("Location: login.php");
}
?>


if (isset($_SESSION['privilegios']) && $_SESSION['privilegios'] == 'root'){

// CONTENIDO SOLO PARA ROOT

}


Código PHP:
Ver original
  1. echo("<tr>\n");
  2. echo("<td width='5%'>" . $row["tecnologia"] . "</td>\n");
  3. echo("<td width='5%'>" . $row["equipo"] . "</td>\n");
  4. echo("<td width='10%'>" . $row["nombre"] . "</td>\n");
  5. echo("<td width='5%'>" . $row["serial_mv"] . "</td>\n");
  6. echo("<td width='5%'>" . $row["serial_e"] . "</td>\n");
  7. echo("<td width='5%'>" . $row["cod_m"] . "</td>\n");
  8. echo("<td width='5%'>" . $row["cod_p"] . "</td>\n");
  9. echo("<td width='10%'>" . $row["fecha_i"] . "</td>\n");
  10. echo("<td width='10%'>" . $row["usuario_i"] . "</td>\n");
  11. echo("<td width='10%'>" . $row["com_i"] . "</td>\n");
  12. echo("<td width='5%'>" . $row["fecha_s"] . "</td>\n");
  13. echo("<td width='5%'>" . $row["usuario_s"] . "</td>\n");
  14. echo("<td width='10%'>" . $row["com_s"] . "</td>\n");
  15.  
  16. if (isset($_SESSION['privilegios']) && $_SESSION['privilegios'] == 'root'){
  17.  
  18. echo("<td width='5%'><a href='borrar.php?id=$id' class='estilo'><img src='images/eliminar.png' title='Eliminar'></a></td>\n");
  19. echo "</tr>";
  20.  
  21. }
  22.  
  23.  
  24. }
  25.  
  26. echo "</table>";

Etiquetas: mysql, proteger, sql, 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 01:13.