Ver Mensaje Individual
  #10 (permalink)  
Antiguo 23/01/2013, 18:14
art_rockerd
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 6
De acuerdo Respuesta: Crear Log de Registro de Activdad de Usuarios

Cita:
Iniciado por nedyer Ver Mensaje
Se podría ahorra trabajo si creas una función que haga ese trabajo y luego lo que haces es llamarla en cada evento que quieras.
Hola amigo estuve trabajando el dia de hoy en eso y lo hice asi como lo menciones, hice una funcion en un archivo .php aparte y cada ves que el usuario realizaba una venta, cuando ejecutaba el query verificaba que realmente se hiciera el insert, y si se hacia ponia ahi la llamada a la función y le pasaba los parametros que queria insertar, en la funcion lo que hice fue crear un archivo de texto con un nombre dinamico que cambiara para cada dia, asi llevar un log de regisros por dia, por que asi lo necesito. les pongo como quedo la funcion del registro de log y la llamada de esta funcion en mis otras paginas... por si a laguien les sirve, claro este es especifico para mi apliaccion, pero les comento lo que guardo es el
CUANDO: Hora del evento
QUIEN: nombre de usuario
QUE:Lo que hizo el usuario.
DESDE DONDE: Ip del usuario...

archivo registroLogs.php
Código PHP:
Ver original
  1. /*este archivo lo incluyo en mis demas scripts cuando deseo registrar alguna accione que haga el usuario en esa pagina*/
  2. <?php
  3. function generaLogs($usuario,$accion,$origen){
  4.     //Definimos la hora de la accion
  5.     $hora=str_pad(date("H:i:s"),10," "); //hhmmss;
  6.     //Definimos el contenido de cada registro de accion por usuario.
  7.     $usuario=strtoupper(str_pad($usuario,15," "));
  8.     $accion=strtoupper(str_pad($accion,50," "));
  9.     $cadena=$hora.$usuario.$accion.$origen;
  10.     //Creamos dinamicamente el nombre del archivo por dia
  11.     $pre="log";
  12.     $date=date("ymd"); //aammddhhmmss
  13.     $fileName=$pre.$date;
  14.     //echo "$fileName";
  15.     $f = fopen("logs/$fileName.TXT","a");
  16.         fputs($f,$cadena."\r\n") or die("no se pudo crear o insertar el fichero");
  17.     fclose($f);
  18.    
  19. }//end generaLogs function
  20.  
  21. ?>


Ahora imaginemos un script de inicio de sesion.. pongo lo demas en pseucodigo y la llamada a la funcion como realmente lo hago..

Código PHP:
Ver original
  1. function loginUser($user,$pass){
  2. //aqui incluyo mi archivo con mi funcion para registrarLogs
  3. include "registroLogs.php";
  4.  
  5. $query="CONSULTA USUARIO EN BDD";
  6. $ejecuta=mysql_query($query,$conexion);
  7. include "conexion.php";
  8. /*SI NO ENCONTRON AL USUARIO ENTONCES REGISTRO ESE EVENTO EN MI FUNCION Y TAMBIEN NOTIFICO QUE NO LO ENCONTRO.*/
  9. if(mysql_num_rows($ejecuta)<1)
  10.         {
  11. /*REGISTRO LA ACCION EN MI LOG LLAMANDO A LA FUNCION Y ENVIANDOLE LOS PARAMETROS DESEADOS*/
  12.     $accion="FALLO INICIO DE SESION";
  13.     $origen=$_SERVER['REMOTE_ADDR'];
  14.     generaLogs($username,$accion,$origen);
  15.         echo "Usuario no Encontrado";
  16.         }else{
  17.            /*ENTONCES SI SI ENCONTRO AL USUARIO LO REGISTRO EN MI FUNCION Y          OBTENGO LOS DATOS Q NECESITO.*/
  18.         while ($row = mysql_fetch_array($ejecuta))
  19.             {
  20.                       /*REGISTRO LA ACCION EN MI LOG LLAMANDO A LA FUNCION Y ENVIANDOLE LOS PARAMETROS DESEADOS*/                                              
  21.                                                 $accion="USUARIO INICIA SESION EN EL SISTEMA";
  22.                         $origen=$_SERVER['REMOTE_ADDR'];
  23.                         generaLogs($username,$accion,$origen);
  24.                           //Obtengo los datos que quiero
  25.                           echo "usuario encontrado";
  26.                               }
  27.  
  28. }

Y bueno hago eso en donde quiera hacer algun registro de actividad, Muchas gracias por su ayuda, realmente no tenia ni idea, pensaba que habia alguna libreria o herramienta de PHP que guardaba Logs automaticamente de todo lo que se hacia en la sesion mientras estuviera activa. Pero esto me sirvio bien por que lo personalice.

Saludoss!

Última edición por art_rockerd; 23/01/2013 a las 18:16 Razón: cambiar datos