Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/06/2011, 08:42
Avatar de stramin
stramin
 
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: Historial de visitantes a la base de datos por php

yo hago esto:

primero creo una tabla llamada "logs" con los siguietnes campos

id INT PK AUTOINCREMENT
what VARCHAR(100) // que hizo
who INT // id de quien lo hizo
where VARCHAR(15) // IP de donde se hizo
when DATETIME // Cuando se hizo

luego en un archivo de coneccion por ejemplo coneccion.php (el mismo que usas para conectarte), agregas esta función:

Código PHP:
function mysql_log_query($query){
  
$action=strtoupper(substring($query,0,strpos($query," "))); //tomas la primera palabra de la query en mayuscula
  
if($action=="INSERT" or $action=="UPDATE" or $action=="DELETE"){ // en los casos ponemos todos los eventos que tengan relacion con modificaciones en la BD
      // en ese ejemplo he usado insertar, actualizar y eliminar, pero puedes agregar más
      
$save=str_replace("'"," ",$query);
      
mysql_query("INSERT INTO logs VALUES ('','".$save."','".$_SESSION['usuario']."','".$_SERVER['REMOTE_ADDR']."',NOW());");
      
// guardas en la tabla log esta acción, fijate que la query se guarda sin comillas, se guarda el usuario, su ip y la fecha-hora actual
  
}
  return 
mysql_query($query); // y por supuesto tenemos que ejecutar la consulta

ahora cada vez que quieras hacer una sentencia sql en vez de poner mysql_query pones mysql_log_query

por ejemplo:

mysql_log_query("UPDATE tabla SET x=1 WHERE y=2");

guardara en tu log esto:

ID: 1
what: UPDATE tabla SET x=1 WHERE y=2
who: (mi id)
where: 127.0.0.1
when: 2011-06-15 10:49:25

te lo recomiendo, de este modo no solo tendrás registros de cada acción, también podrás filtrar las consultas si quieres y agregar mas seguridad :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Última edición por stramin; 15/06/2011 a las 08:50