Foros del Web » Programando para Internet » PHP »

restringir que un usuario visualice ciertos menu y procese un formulario

Estas en el tema de restringir que un usuario visualice ciertos menu y procese un formulario en el foro de PHP en Foros del Web. Hola si alguien me puede ayudar se lo agradezco. Tengo una aplicación donde los usuarios del sistema con perfil operario y G trabajan por turnos ...
  #1 (permalink)  
Antiguo 27/06/2013, 21:53
 
Fecha de Ingreso: junio-2013
Ubicación: Valledupar
Mensajes: 3
Antigüedad: 10 años, 10 meses
Puntos: 0
restringir que un usuario visualice ciertos menu y procese un formulario

Hola si alguien me puede ayudar se lo agradezco.

Tengo una aplicación donde los usuarios del sistema con perfil operario y G trabajan por turnos de 8 horas

idturno nomturno horainicia horafin
1 6 am-1:59pm 06:00:00 13:59:59
2 2 pm- 9:59pm 14:00:00 21:59:59
3 10pm-5:59am 22:00:00 05:59:59
4 3 am - 11am 03:00:00 11:00:00
5 LICENCIA 00:00:00 00:00:00
6 VACACIONES 00:00:00 00:00:00
7 DESCANSO 00:00:00 00:00:00


idte idemple turno fecha
1 1065562 1 2013-05-11
2 1065562 1 2013-05-12
3 1065562 3 2013-05-13

Está ocurriendo un problema y es que a veces se les olvida cerrrar sesión y registran datos con el usuario de otro creando errores en el reporte de ingresos al final del turno, porque lo realizo con un idusario que no era.

Para limitar al usuario es decir obligarlo a cerrar sesión no es lo ideal, porque él puede entrar al sistema después de su turno, hacer consultas por ej de lo vendido en su turno pero que no le permita guardar ni editar en los formularios, y no le visualice el menu principal. Asi el que está ingresando al turno, si el otro no cerro no le deje guardar y se de cuenta que debe cerrar esa sesión ajena y entrar con su usuario.

Entonces no se como hacer para programar eso en el formulario principal o en el de login o en cada uno de los procesar. Yo quiero que el menu principal no se muestre y el otro de las planillas si, pero para consultas. Y le muestre un mensaje que diga No puede editar.

mi codigo del principal.php es una parte, ingresos no quiero que lo visualicen, informes si.

<div id="menuizq" class="tab_container" style="width:19%; height:500px;">
<ul class="tabs">
<li><a href="#tab1" style="padding:2px 8px 5px 9px;">INGRESOS</a></li>
<li><a href="#tab2" style="padding:2px 8px 5px 9px;">ADMON</a></li>
<li><a href="#tab3" style="padding:2px 8px 5px 9px;">INFORMES</a></li>
</ul>
<!--sistema de tabs-->
<div class="tab_container" style="width:100%;overflow-y:visible;overflow-x:hidden;;">



<? if($VP_perfil=="Operario" || $VP_perfil=="Gerente" || $VP_perfil=="Secretaria" || $VP_perfil=="Contador" || $VP_perfil=="Superadmin" || $VP_perfil=="Mercadeo")
{ ?> <!--permisos usuarios-->
<div id="tab1" class="tab_content">
<ul id="menu" >
<? if($VP_perfil=="Operario" || $VP_perfil=="Gerente" || $VP_perfil=="Contador" || $VP_perfil=="Superadmin" || $VP_perfil=="Mercadeo")
{ ?>
<li><a href="Javascript:;" onclick="loadContentP ('areatrabajo','recaudos/espacioscomerciales/espacomerciales.php','');" style="cursor:pointer">Tarifa por Ocupaci&oacute;n de Espacios</a></li>



acceso.php
<?
session_start(); // Inicializar la sesión
include("config.php");
include "funciones.php";
define($acceso,false);
$VP_nombres;
$VP_apellidos;
$VP_usuario;
$VP_perfil;
$VP_idusuario;
if(isset($_SESSION["s_Usuario"]))
{ // Comprueba que la sesion sea valida
$sql="select * from usuario where usuario='".$_SESSION["s_Usuario"]."' and clave='".$_SESSION["s_Clave"]."' and estado='1';";
//echo $sql;
$resultado=ejecutarSQL($sql);
$VP_nombres=mysql_result($resultado,0,'nombres');
$VP_apellidos=mysql_result($resultado,0,'apellidos ');
$VP_usuario=mysql_result($resultado,0,'usuario');
$VP_perfil=mysql_result($resultado,0,'perfil');
$VP_idusuario=mysql_result($resultado,0,'idusuario ');

login.php
<?
session_start();
include ("config.php");
include ("funciones.php");

$Usuario=$_POST["User"];
$Clave=$_POST["Pass"];
$Clave=md5($Clave);
$sql="select * from usuario where usuario='$Usuario' and clave='$Clave'";
$resultado=@ejecutarSQL($sql);
if($file=mysql_fetch_array($resultado)) {
//
$VP_idusuario=mysql_result($resultado,0,'idusuario ');

$_SESSION["s_Usuario"]=$Usuario;
$_SESSION["s_Clave"]=$Clave;
$_SESSION["s_Nombres"]=$file['nombres'];
$_SESSION["s_Apellidos"]=$file['apellidos'];
$_SESSION["s_idusuario"]=$file['idusuario'];
echo ("<div style=\"text-align:center\">BIENVENIDO ".$_SESSION["s_Nombres"]." ".$_SESSION["s_Apellidos"]);
echo ("<br />Espere por favor</div>");

necesito comparar la fecha y hora actual para ver sino coinciden con el turno, entonces dejarlo editar y visualizar ingresos, pero no se donde por favor perdonen lo largo.
  #2 (permalink)  
Antiguo 28/06/2013, 00:46
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: restringir que un usuario visualice ciertos menu y procese un formulario

Puedes usar las funciones de fecha de PHP, escribe una función que compare fecha actual y turno del trabajador. Se debe ejecutar junto con session_start() se manera que en cada request se hará una comparación, si devuelve false, procedes con la lógica que propones.
http://www.php.net/manual/es/ref.datetime.php
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 28/06/2013, 08:59
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 6 meses
Puntos: 36
Respuesta: restringir que un usuario visualice ciertos menu y procese un formulario

Pienso k lo mas logico sea k cada vez que ejecutes una operacion chequear los datos actuales (Fecha/Hora), con los datos de la base de datos (Fecha/Hora), que tienen cada usuario, y si la validacion es correcta procede la operacion de lo contrario lo redireccione a la pantalla de autenticacion.

Un detalle, los valores de la base de datos, deben ser semejantes a las variales de DATE, para que las comparaciones sean exitosas.

Etiquetas: ciertos, formulario, restringir, select, sql, usuario, 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 20:17.