Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

haciendo una Bitacora

Estas en el tema de haciendo una Bitacora en el foro de PostgreSQL en Foros del Web. Tengo un sistemita hecho en php y necesito un trigger que me guarde ciertos datos de cada tabla en la bitacora, ademas necesito saber que ...
  #1 (permalink)  
Antiguo 02/03/2008, 10:37
 
Fecha de Ingreso: enero-2008
Mensajes: 10
Antigüedad: 16 años, 3 meses
Puntos: 0
haciendo una Bitacora

Tengo un sistemita hecho en php y necesito un trigger que me guarde ciertos datos de cada tabla en la bitacora, ademas necesito saber que usuario hizo la transaccion. El problema es que no quiero guardar el usuario rol de postgres, si no el usuario de session de apache. que puedo hacer?
  #2 (permalink)  
Antiguo 03/03/2008, 02:58
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: haciendo una Bitacora

pasarlo por parametro?
  #3 (permalink)  
Antiguo 03/03/2008, 16:55
Avatar de Rh_Fenix  
Fecha de Ingreso: febrero-2008
Ubicación: Mexico
Mensajes: 9
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: haciendo una Bitacora

Hola karatedo:

Para empezar debes iniciar una sesion y crear una variable usuario, supongo ke manejas el sistema con usuario y contraseña, pues a la variable de sesion usuario(pero es mejor usar el id) le asignas el valor de el usuario(id) ke inicio la sesion en tu sistema.

por ejemplo:

session_start(); //inicia las sesiones
session_name('Mi_sesion');

//si kieres el nombre del usuario solo debes hacer esto:
$_SESSION['usuario'] =$HTTP_POST_VARS['usuario']; //suponiendo que pasas por metodo post

//si kieres manejar mejor el id y suponiendo que ya se realizo la conexion

$sql= "select * from usuarios where usuario='$usuario' and password='$password'"; //Consulta para sacar el id

$result= pg_exec($conexion, $sql); //ejecuto la sentencia

$_SESSION['id_usuario'] = pg_result($result,0,"id");


Para usar estas variables en cualkier otra pagina solo debes poner:

$nombre_usuariol=$_SESSION['usuario'] ;
$id_usuario=$_SESSION['id_usuario'];

y eso es todo si tienes alguna otra duda, pregunta solo espero poder responderte, por ke la verdad no soy una experta, bye.
  #4 (permalink)  
Antiguo 04/03/2008, 02:16
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: haciendo una Bitacora

este foro es de Bases de Datos no de php!
  #5 (permalink)  
Antiguo 04/03/2008, 16:06
 
Fecha de Ingreso: enero-2008
Mensajes: 10
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: haciendo una Bitacora

el problema es que tiene que ser obligatoriamente en triggers de postgres, osea que no lo tengo que hacer en paginas php, si no capturar el usuario apache dentro de un trigger hecho en la db. Todavia no tengo solucion, pero gracias por sus respuestas.
  #6 (permalink)  
Antiguo 04/03/2008, 17:54
 
Fecha de Ingreso: noviembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: haciendo una Bitacora

Sr. Karateado, buenas tardes :

Una posible solución desde BD, es crear una columna (nombresesíon, por ejemplo) en la o las tablas donde se realizan actualizaciones, las cuales se desea monitorear a través de Trigger. Cada vez que se realice actualizacón de tales tablas desde la interfase Web, deberá enviarse como parametro el nombre de sesión ( con el que se ha loggeado el usuario), a ser insertado en la Tabla, conjuntamente y con el mismo procedimiento que inserta los demás datos.

Saludos.

amilano
  #7 (permalink)  
Antiguo 05/03/2008, 02:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: haciendo una Bitacora

Cita:
Iniciado por karatedo Ver Mensaje
el problema es que tiene que ser obligatoriamente en triggers de postgres, osea que no lo tengo que hacer en paginas php, si no capturar el usuario apache dentro de un trigger hecho en la db. Todavia no tengo solucion, pero gracias por sus respuestas.
Repito, tienes que pasarselo por parametro!
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 06:34.