Foros del Web » Programando para Internet » PHP »

Como crear bitacora de accesos o libro de visitas

Estas en el tema de Como crear bitacora de accesos o libro de visitas en el foro de PHP en Foros del Web. Hola a todos, estoy creando un sitio mediante php y registro de usuarios con mysql. Me gustaría ahora hacer un modulo para llevar un historial ...
  #1 (permalink)  
Antiguo 02/09/2010, 16:09
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
De acuerdo Como crear bitacora de accesos o libro de visitas

Hola a todos, estoy creando un sitio mediante php y registro de usuarios con mysql. Me gustaría ahora hacer un modulo para llevar un historial de accesos, es decir, quisiera saber que usuario entro al sistema, en que fecha, a que hora inicio y finalizo sesión, y que links de mi sitio visito.
En mi pantalla de index me muestra la fecha y el usuario que ha ingresado, pero nohe podido dar en que forma almacenar estos datos para crear la bitácora, ojala me puedan ayudar.
  #2 (permalink)  
Antiguo 02/09/2010, 16:15
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: Como crear bitacora de accesos o libro de visitas

bueno eso se resuelve con una base de datos, sessiones, y varias paginitas por ahí.. no se que tanto conocimiento tengas, y por otro lado.. hasta donde tengas hecho.. que se yo..

además por ahí en la red puede que encuentres lo que necesitas al menos un formulario que te ayude.. yo diría que empieces, y por ahí te ayudamos con las dudas que tengas.. empieza analizando en que parte de tus páginas o lo que tengas hecho, vas a guardar esos datos ;)

suerte ^^
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #3 (permalink)  
Antiguo 02/09/2010, 16:57
 
Fecha de Ingreso: junio-2010
Mensajes: 24
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Como crear bitacora de accesos o libro de visitas

Vayamos por partes.

Siempre que necesito implementar algun módulo lo primero que hago es analizar lo que quiero que haga el módulo. En este caso llevar un control de la navegación del usuario, es decir, saber cuando ha iniciado sesión, saber cuando ha finalizado sesión y que links ha visitado.

Con los datos que das te puedo ayudar orientandote un poco, pero eres tú el que tienes que adaptarlo a tu proyecto, ya que no sé que clase de links puede visitar el usuario, no sé que clase de aplicación estás desarrollando.

Lo primero, analiza los campos que va a tener la tabla que vas a utilizar para almacenar los datos de seguimiento del usuario, en este caso puede servir con los siguientes campos:

- ID de la tabla en sí, siempre suelo utilizarlo, aunque en este caso no sirva para mucho.
- ID del usuario.
- Fecha de inicio de sesión. DATETIME.
- Fecha de fin de sesión. DATETIME.
- Un campo tipo TEXT para almacenar todos los links encadenados con algún caracter separador.

La idea sería abrir la sesión en el script de login, guardar la fecha y hora del sistema y el id del usuario registrado. Inicializar un array vacío donde guardar los links y guardarlo también en la sesión.

En el script de logout, recuperas todos los datos de la sesión, ademas obtienes la fecha y hora del sistema en el que se ha desconectado. En este script guardas toda la información en la base de datos.

Luego lo más complicado es guardar el seguimiento de links. Lo que puedes hacer es en cada script que tengas que produce un documento HTML completo, abras la sesión y añadas el nuevo link a la variable que guarda los links de la sesión. No sé si me explico. Imaginate que estas desarrollando una aplicación de comercio electrónico. Pues en el script view_products, guardas en el array de links, una ruta formada por el nombre del script con los parámetros que ha utilizado el usuario vía GET.

No puedo ayudarte más. Si tu problema es que no sabes como abrir la sesión, guardar variables, recuperarlas, obtener la fecha y hora del sistema, crear la tabla, comunicarte con la base de datos, pues ya sabes, a aprender poco a poco. Lee tutoriales, descargate un libro de PHP.

Ánimo y suerte.
  #4 (permalink)  
Antiguo 02/09/2010, 17:47
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
De acuerdo Respuesta: Como crear bitacora de accesos o libro de visitas

Gracias silvanha y Franki por responder tan rápido, bueno empeare por comentar que si tengo algo de conocimientos en php y mysql, al menos si se crear una base de datos y que puedo enviar info por post o get, lo de las sesiones aun no lo manejo muy bien pero al menos ya me di una idea por donde empezar. Bueno comenzare con el script. Gracias nuevamente.
  #5 (permalink)  
Antiguo 08/09/2010, 19:47
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como crear bitacora de accesos o libro de visitas

Hola bueno ya he avanzado un poco pero ahora ya me trave a la hora de guardar loa datos. primero tengo mi index.php en donde mando a llamar a v-login
===============================================
<?php
Conectarse() // me conecto a la base de datos y creo las sesiones para el usuario que corresponda su nombre de usuario, contraseña y nivel.
session_start();
Conectarse();
if ($_SESSION['nombreusuario']!= "")
{
header("Location:sesionini.php");
exit();
}
if ($_SESSION['error_login']=="")
{
$_SESSION['error_login'] = "Acceso";
}

if ($_POST['login']=="si")
{

$usuari=$_POST['user'];
$cuenta=$_POST['pass'];

if (($usuari=="") || ($cuenta==""))
{

$_SESSION['error_login']="¡Datos en blanco!";
$url_relativa = "index.php";
header ("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']). "/" .$url_relativa);

}
else
{
$sql = mysql_query("SELECT usuario,pass FROM usuarios WHERE usuario='$usuari'");
$row = mysql_fetch_array($sql);

if($row>0)
{
if($row[1] == $cuenta)
{
session_start();
session_register('nombreusuario');
$_SESSION['nombreusuario'] = $usuari;
session_register('id_usuario');
$_SESSION['id_usuario'] = $row[0];
$sql2 = mysql_query("SELECT nombre,apellidos,nivel,usuario,pass FROM usuarios WHERE usuario='$usuari' and pass='$cuenta'");
$row2 = mysql_fetch_array($sql2);
session_register('nombreu');
$_SESSION['nombreu'] = $row2[0];
session_register('apellidou');
$_SESSION['apellidou'] = $row2[1];
session_register('accesou');
$_SESSION['accesou'] = $row2[2];
$url_relativa = "aplicacion.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" .$url_relativa);
}else{
$_SESSION['error_login']="¡Contraseña Incorrecta!";
$url_relativa="index.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" .$url_relativa);
}

}
else
{
$_SESSION['error_login']="¡Nombre de Usuario Incorrecto!";
$url_relativa="index.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" . $url_relativa);

}

mysql_free_result($sql);
}
mysql_close();
}else{

session_destroy();
}

?>
===============================================
entro a mi pagina aplicacion.php donde me mestra unas imagenes y ahi cree un boton para cerrar sesion
================================================== ===
<?php
include ("script.php");
include("conexion.php");
?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="es-mx">
<head>
<title>Mi pagina</title>
<style type="text/css">@import url("css/style.css");</style>
</head>
<body>
<div id="container">
<div id="header1"></div>
<div id="header5"><br />BIENVENIDO: <?php echo ($_SESSION['nombreu']); echo ' '; echo ($_SESSION['apellidou']);?><br />
<?php include("fecha.php"); ?>
<br /><a href="t-sesion.php"><input type="submit" name="tsesi" value="Cerrar Sesion" /></a></div>
<div id="header2"></div>

<table cellpadding="0" cellspacing="0" width="100" align="center">
<tr>
<td valign="top"><div id="logo"></div></td>
</tr>
</table>
</div>

</body>
</html>
================================================== ===
y por ultimo el archivo donde hago la funcion para guardar el usuario que entro al sistema, la fecha y su ip llamado t-sesion.php
================================================== ===
<?php
include ("script.php");
include("conexion.php");// este de conexion es donde pongo los datos de usuario, clave para la conexion a base de datos
$link=Conectarse();
if (isset($_POST["tsesi"])){
$nom = $_SESSION['nombreu'];
$ape = $_SESSION['apellidou'];
$use = $nom." ".$ape;
$ip = $_SERVER['REMOTE_ADDR'];
$sdate = date("d")."/".date("m")."/".date("Y");
$stime = date("h").":".date("i");
$ffin = $sdate." ".$stime;

$insertar = mysql_query("INSERT INTO bitacora (usuario,ip,fefin) VALUES ('$use','$ip','$ffin')",$link);

if (!$insertar) {
die("Fallo en la insercion de registro en la Base de Datos:" . mysql_error());
}
}
session_destroy();
$url_relativa = "index.php";
header ("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']). "/" .$url_relativa);
?>
================================================== ===

ME PODRIAN HORIENTAR PORQUE NO ME GUARDA NADA EN LA TABLA
  #6 (permalink)  
Antiguo 17/09/2010, 19:54
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como crear bitacora de accesos o libro de visitas

Hola franki bueno ya he avanzado un poco pero ahora ya me trave a la hora de guardar los datos. primero tengo mi index.php en donde mando a llamar a v-login
===============================================
<?php
Conectarse() // me conecto a la base de datos y creo las sesiones para el usuario que corresponda su nombre de usuario, contraseña y nivel.
session_start();
Conectarse();
if ($_SESSION['nombreusuario']!= "")
{
header("Location:sesionini.php");
exit();
}
if ($_SESSION['error_login']=="")
{
$_SESSION['error_login'] = "Acceso";
}

if ($_POST['login']=="si")
{

$usuari=$_POST['user'];
$cuenta=$_POST['pass'];

if (($usuari=="") || ($cuenta==""))
{

$_SESSION['error_login']="¡Datos en blanco!";
$url_relativa = "index.php";
header ("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']). "/" .$url_relativa);

}
else
{
$sql = mysql_query("SELECT usuario,pass FROM usuarios WHERE usuario='$usuari'");
$row = mysql_fetch_array($sql);

if($row>0)
{
if($row[1] == $cuenta)
{
session_start();
session_register('nombreusuario');
$_SESSION['nombreusuario'] = $usuari;
session_register('id_usuario');
$_SESSION['id_usuario'] = $row[0];
$sql2 = mysql_query("SELECT nombre,apellidos,nivel,usuario,pass FROM usuarios WHERE usuario='$usuari' and pass='$cuenta'");
$row2 = mysql_fetch_array($sql2);
session_register('nombreu');
$_SESSION['nombreu'] = $row2[0];
session_register('apellidou');
$_SESSION['apellidou'] = $row2[1];
session_register('accesou');
$_SESSION['accesou'] = $row2[2];
$url_relativa = "aplicacion.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" .$url_relativa);
}else{
$_SESSION['error_login']="¡Contraseña Incorrecta!";
$url_relativa="index.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" .$url_relativa);
}

}
else
{
$_SESSION['error_login']="¡Nombre de Usuario Incorrecto!";
$url_relativa="index.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" . $url_relativa);

}

mysql_free_result($sql);
}
mysql_close();
}else{

session_destroy();
}

?>
===============================================
entro a mi pagina aplicacion.php donde me mestra unas imagenes y ahi cree un boton para cerrar sesion
================================================== ===
<?php
include ("script.php");
include("conexion.php");
?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="es-mx">
<head>
<title>Mi pagina</title>
<style type="text/css">@import url("css/style.css");</style>
</head>
<body>
<div id="container">
<div id="header1"></div>
<div id="header5"><br />BIENVENIDO: <?php echo ($_SESSION['nombreu']); echo ' '; echo ($_SESSION['apellidou']);?><br />
<?php include("fecha.php"); ?>
<br /><a href="t-sesion.php"><input type="submit" name="tsesi" value="Cerrar Sesion" /></a></div>
<div id="header2"></div>

<table cellpadding="0" cellspacing="0" width="100" align="center">
<tr>
<td valign="top"><div id="logo"></div></td>
</tr>
</table>
</div>

</body>
</html>
================================================== ===
y por ultimo el archivo donde hago la funcion para guardar el usuario que entro al sistema, la fecha y su ip llamado t-sesion.php
================================================== ===
<?php
include ("script.php");
include("conexion.php");// este de conexion es donde pongo los datos de usuario, clave para la conexion a base de datos
$link=Conectarse();
if (isset($_POST["tsesi"])){
$nom = $_SESSION['nombreu'];
$ape = $_SESSION['apellidou'];
$use = $nom." ".$ape;
$ip = $_SERVER['REMOTE_ADDR'];
$sdate = date("d")."/".date("m")."/".date("Y");
$stime = date("h").":".date("i");
$ffin = $sdate." ".$stime;

$insertar = mysql_query("INSERT INTO bitacora (usuario,ip,fefin) VALUES ('$use','$ip','$ffin')",$link);

if (!$insertar) {
die("Fallo en la insercion de registro en la Base de Datos:" . mysql_error());
}
}
session_destroy();
$url_relativa = "index.php";
header ("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']). "/" .$url_relativa);
?>
================================================== ===

ESPERO ME PUEDAS HORIENTAR PORQUE NO ME GUARDA NADA EN LA TABLA
  #7 (permalink)  
Antiguo 20/09/2010, 19:01
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como crear bitacora de accesos o libro de visitas

Bueno ya he resuelto que guarde los datos en la tabla, ahora voy por el array que recoja y guarde las paginas visitadas.

Etiquetas: libro, visitas
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:09.