Foros del Web » Programando para Internet » PHP »

Script PHP

Estas en el tema de Script PHP en el foro de PHP en Foros del Web. Hola, este conjunto de archivos php funciona perfectamente. Empezando por index.php, control.php (el que muestro a continuación), app.php, seguridad.php y salir.php Esta pàgina la pueden ...
  #1 (permalink)  
Antiguo 05/01/2016, 10:13
 
Fecha de Ingreso: noviembre-2013
Mensajes: 15
Antigüedad: 11 años
Puntos: 0
Pregunta Script PHP

Hola, este conjunto de archivos php funciona perfectamente. Empezando por index.php, control.php (el que muestro a continuación), app.php, seguridad.php y salir.php

Esta pàgina la pueden consultar diferentes usuarios con sus contraseñas (pepe -1234-, juan -8888-, luis -3691- y pedro -0706-) Ahora bien, en el punto Redirección (header), quisiera poder incluir otra redirección en función del usuario autenticado. Pepe solamente puede consultar la app.php, Juan debe ver la 1app.php, Luis necessita accedir a 7app.php y Pedro a 0app.php

Les agradecezco de antemano su valiosa ayuda.


<?
/* A continuación, realizamos la conexión con nuestra base de datos en MySQL */
$link = mysql_connect("bbdd.muestra.eu","ddb67452","meticu loso");
mysql_select_db("ddb67452", $link);

/* El query valida si el usuario ingresado existe en la base de datos. Se utiliza la función
htmlentities para evitar inyecciones SQL. */
$myusuario = mysql_query("select idusuario from Usuarios
where idusuario = '".htmlentities($_POST["usuario"])."'",$link);
$nmyusuario = mysql_num_rows($myusuario);

//Si existe el usuario, validamos también la contraseña ingresada y el estado del usuario...
if($nmyusuario != 0){
$sql = "select idusuario
from Usuarios
where estado = 1
and idusuario = '".htmlentities($_POST["usuario"])."'
and pass = '".md5(htmlentities($_POST["pass"]))."'";
$mypass = mysql_query($sql,$link);
$nmypass = mysql_num_rows($mypass);

//Si el usuario y clave ingresado son correctos (y el usuario está activo en la BD), creamos la sesión del mismo.
if($nmypass != 0){
session_start();
//Guardamos dos variables de sesión que nos auxiliará para saber si se está o no "logueado" un usuario
$_SESSION["autentica"] = "SIP";
$_SESSION["usuarioactual"] = mysql_result($mypass,0,0); //nombre del usuario logueado.
//Direccionamos a nuestra página principal del sistema.
header ("Location: app.php");
}
else{
echo"<script>alert('La contraseña del usuario no es correcta.');
window.location.href=\"01index.php\"</script>";
}
}else{
echo"<script>alert('El usuario no existe.');window.location.href=\"01index.php\"</script>";
}
mysql_close($link);
?>
  #2 (permalink)  
Antiguo 05/01/2016, 10:30
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Script PHP

Entonces deberías montarte un sistema de privilegios.

Imaginemos que tienes 4 módulos (O archivos, lo mismo es)
-app1.php
-app2.php
-app3.php
-app4.php

Por tanto deberías tener en una tabla mysql a qué privilegios tiene acceso cada usuario

Cita:
id_usuario | app1 | app2 | app3 | app4
15763, 1, 1, 0, 1
15764, 0, 1, 0, 1
o

Cita:
id_usuario | privilegio
15763, app1
15763, app2
15763, app4
15764, app2
15764, app4
Luego simplemente, en cada uno de los archivos, compruebas si ese usuario tiene ese privilegio o no.
  #3 (permalink)  
Antiguo 05/01/2016, 15:10
 
Fecha de Ingreso: noviembre-2013
Mensajes: 15
Antigüedad: 11 años
Puntos: 0
Pregunta Respuesta: Script PHP

Gracias por la respuesta, pero no soy muy experto en este lenguaje. Los campos en las tablas lo tengo claro, pero luego no se donde colocar la cita y en que conceptos.
  #4 (permalink)  
Antiguo 05/01/2016, 15:41
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Script PHP

Vale mira, en tu base de datos crea un campo llamado "permisos" por ejemplo de tipo varchar(255), dentro puedes poner por ejemplo "app.php" para el usuario Pepe.
Luego, al hacer el login recuperas ese campo con una consulta sql y en el header lo puedes poner así

Código PHP:
Ver original
  1. header ("Location: $variablePermisos");

Donde variablesPermisos recuperaría el campo "permisos" de tu db al usuario que se ha loggeado
  #5 (permalink)  
Antiguo 06/01/2016, 04:44
 
Fecha de Ingreso: noviembre-2013
Mensajes: 15
Antigüedad: 11 años
Puntos: 0
Pregunta Respuesta: Script PHP

Interpreto que la consulta sql debe ser ésta:
$variblepermisos = mysql_query("select permisos from Usuaris
where permisos = '".htmlentities($_POST["usuario"])."'",$link);

y que debe ir después de la validación de contraseña y antes del inicio de sesión.
  #6 (permalink)  
Antiguo 06/01/2016, 06:25
 
Fecha de Ingreso: noviembre-2013
Mensajes: 15
Antigüedad: 11 años
Puntos: 0
Respuesta: Script PHP

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Vale mira, en tu base de datos crea un campo llamado "permisos" por ejemplo de tipo varchar(255), dentro puedes poner por ejemplo "app.php" para el usuario Pepe.
Luego, al hacer el login recuperas ese campo con una consulta sql y en el header lo puedes poner así

Código PHP:
Ver original
  1. header ("Location: $variablePermisos");

Donde variablesPermisos recuperaría el campo "permisos" de tu db al usuario que se ha loggeado
Parece que estoy en el buen camino, podrias indicarme el código del sql.
  #7 (permalink)  
Antiguo 06/01/2016, 06:44
 
Fecha de Ingreso: noviembre-2013
Mensajes: 15
Antigüedad: 11 años
Puntos: 0
Respuesta: Script PHP

No consigo dar con la ruta para recuperar el campo "permisos" de DB, aparte de este detalle el resto me funciona!!
  #8 (permalink)  
Antiguo 06/01/2016, 07:26
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Script PHP

Debes obtener el campo permisos, del usuario x, por tanto necesitas cambiar el where permisos por el campo del usuario (Identificador o nombre)
  #9 (permalink)  
Antiguo 08/01/2016, 14:20
 
Fecha de Ingreso: noviembre-2013
Mensajes: 15
Antigüedad: 11 años
Puntos: 0
Respuesta: Script PHP

Gracias a todos por las respuestas, pero, no lo he conseguido.
  #10 (permalink)  
Antiguo 09/01/2016, 01:06
 
Fecha de Ingreso: julio-2011
Ubicación: Los Rios
Mensajes: 145
Antigüedad: 13 años, 4 meses
Puntos: 10
Respuesta: Script PHP

Saludos, primero deberás crear el campo permisos en tu tabla usuarios, campo en el cual guardaras la pagina de redireccion por usuario es decir app.php, 0app.php, 7app.php, etc.
Y luego apenas unas modificaciones a tu script.
Código PHP:
Ver original
  1. <?php
  2. /* A continuación, realizamos la conexión con nuestra base de datos en MySQL */
  3. $link = mysql_connect("bbdd.muestra.eu","ddb67452","meticu loso");
  4. mysql_select_db("ddb67452", $link);
  5.  
  6. /* El query valida si el usuario ingresado existe en la base de datos. Se utiliza la función
  7. htmlentities para evitar inyecciones SQL. */
  8. $myusuario = mysql_query("select idusuario from Usuarios
  9. where idusuario = '".htmlentities($_POST["usuario"])."'",$link);
  10. $nmyusuario = mysql_num_rows($myusuario);
  11.  
  12. //Si existe el usuario, validamos también la contraseña ingresada y el estado del usuario...
  13. if($nmyusuario != 0){
  14. // PRIMERA MODIFICACION, LA SELECCION DEL CAMPO PERMISOS
  15. $sql = "select idusuario, permisos
  16. from Usuarios
  17. where estado = 1
  18. and idusuario = '".htmlentities($_POST["usuario"])."'
  19. and pass = '".md5(htmlentities($_POST["pass"]))."'";
  20.  
  21. $mypass = mysql_query($sql,$link);
  22.  
  23. // SEGUNDA MODIFICACION LA TOMA DE LOS DATOS
  24. $rmypass= mysql_fetch_assoc($mypass);
  25.  
  26. $nmypass = mysql_num_rows($mypass);
  27.  
  28. //Si el usuario y clave ingresado son correctos (y el usuario está activo en la BD), creamos la sesión del mismo.
  29. if($nmypass != 0){
  30. //Guardamos dos variables de sesión que nos auxiliará para saber si se está o no "logueado" un usuario
  31. $_SESSION["autentica"] = "SIP";
  32. $_SESSION["usuarioactual"] = mysql_result($mypass,0,0); //nombre del usuario logueado.
  33. //Direccionamos a nuestra página principal del sistema.
  34.  
  35. // TERCERA MODIFICACION LA REDIRECCION DE TU PAGINA
  36. $destino ="Location: ".$rmypass['permisos'];
  37. header ($destino);
  38.  
  39. }
  40. else{
  41. echo"<script>alert('La contraseña del usuario no es correcta.');
  42. window.location.href=\"01index.php\"</script>";
  43. }
  44. }else{
  45. echo"<script>alert('El usuario no existe.');window.location.href=\"01index.php\"</script>";
  46. }
  47. mysql_close($link);
  48. ?>

Espero haber ayudado
__________________
___________________________
Si te ayudo mi respuesta dale al +1

Etiquetas: html, mysql, select, sql, usuarios, variable
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 22:26.