Ver Mensaje Individual
  #16 (permalink)  
Antiguo 29/12/2009, 12:00
javiercitox
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 15 años, 2 meses
Puntos: 3
De acuerdo Respuesta: Control acceso a página

Al fin logre hacerlo :) agregue una tabla a la BD que contiene solo dos campos la URL de la página y el Login del usuario que la tiene bloqueada. El codigo es el siguiente:

1ro el codigo de la página principal

Pagina1.php
Código PHP:
Ver original
  1. <?php
  2. include("miLibreria.php");
  3. Conexion();
  4.  
  5. $URL = "MS_IntervencionI2.php";
  6. $EstadoPagina = EstadoPagina($URL,$_SESSION[sesion_usuario]);
  7.  
  8. if ($EstadoPagina != NULL)
  9.     {
  10.     echo "<script>alert('".$EstadoPagina."');document.location.href='index.php';</script>";
  11.     return;
  12.     }
  13. ?>
  14. <html>
  15. <head>
  16. <title>Titulo de la pagina</title>
  17. </head>
  18. <body>
  19. <script language="javascript" src="js/jquery-1.3.min.js"></script>
  20.  
  21. <!-- En este script se hace toda la mágia ;) -->
  22. <script>
  23. $(window).unload(function(){
  24.     $.post ("LiberarAcceso.php", "url=<?php echo $URL;?>");});
  25. </script>
  26.  
  27. Todo el contenido de mi página.

miLibreria.php contiene funciones que utilizo en el sitio, entre las cuales está la de Conexion() [para conectar a MSSQL] y EstadoPagina() [para ver si la página está bloqueada]

Código PHP:
Ver original
  1. function EstadoPagina($pURL,$pLogin)
  2.      {
  3. //Consulto si a la tabla acceso_restringido si existe algún registro con la url que visito
  4.       $Estado = mssql_fetch_array(mssql_query ("SELECT LOGIN
  5.                       FROM ACCESO_RESTRINGIDO
  6.                       WHERE URL = '".$pURL."' "));
  7.  
  8. //Si no hay registro quiere decir que el acceso es libre, por lo que debo bloquearla insertando un registro en dicha tabla
  9.        if ($Estado == NULL)
  10.             {
  11.              mssql_query("INSERT INTO ACCESO_RESTRINGIDO (URL,LOGIN)
  12.     VALUES('".$pURL."','".$pLogin."')");
  13.              return;
  14.              }
  15.  
  16. //Si el usuario que la tiene bloqueada no soy yo busco sus datos y los muestro con un mensaje de error
  17.  
  18.        if ($Estado[0] != $pLogin)
  19.             {
  20.              $Usuario = mssql_fetch_array(mssql_query("SELECT NOMBRES,APELLIDOS               FROM USUARIO
  21.                                                                  WHERE LOGIN = '".$Estado[0]."'"));
  22.                            
  23.              $Mensaje = "Esta página está siendo utilizada por ".$Usuario[0]." ".$Usuario[1].", blablablabla.......";
  24.            
  25.              return $Mensaje;
  26.             }
  27.    
  28. //Sino quiere decir que yo tengo la página bloqueada       
  29.        else
  30.             return;
  31. }

Por último la página LiberarAcceso.php

Código PHP:
Ver original
  1. <?php
  2. mssql_query ("DELETE FROM ACCESO_RESTRINGIDO
  3.                        WHERE URL = '".$_POST["url"]."' ")
  4. ?>


Gracias por el apoyo