Tengo en mi web la un sistema de login de usuarios. Me gustaría poder poner la opción de que en la base de datos se guardara la fecha y hora de la ultima conexión realizada por un usuario, pero no se como hacerlo.
En la tabla de la base de datos (MySQL5) donde se guardan los datos de los usuarios registrados tengo creada dos columnas con las siguientes características:
Nombre: n_conex
Tipo: int(255)
Nulo: No
Predeterminado: 0
Nombre: Ultima_conex
Tipo: timestamp
Atributos: on update CURRENT_TIMESTAMP
Nulo: No
Predeterminado: CURRENT_TIMESTAMP
Extra: ON UPDATE CURRENT_TIMESTAMP
Tengo un formulario para iniciar sesión con el siguiente código:
Código HTML:
<form name="finicio" method="post" action=""> <p class="lineas"> <span class="crotulos">Usuario:</span> <span class="ccampos"><input type="text" name="usuario" class="campos-reg"></span> </p> <p class="lineas"> <span class="crotulos">Contraseña:</span> <span class="ccampos"><input type="password" name="pas" class="campos-reg"></span> </p> <p class="lineas"> <span class="crotulos"> </span> <span class="ccampos"><input type="button" name="boton" value="Iniciar sesión" class="boton" onClick="javascript:Validar();"></span> </p> <input type="hidden" name="proceso">
Código:
El archivo validar-usuarios.php: <script> function Validar(){ document.finicio.action="validar-usuarios.php"; if(document.finicio.usuario.value==""){ alert("El campo usuario es necesario"); document.finicio.usuario.focus(); return; } if(document.finicio.pas.value==""){ alert("El campo contraseña es necesario"); document.finicio.pas.focus(); return; } document.finicio.proceso.value="Iniciar sesión"; document.finicio.submit(); } </script>
Código PHP:
<?php
//Recepcionamos el campo proceso
$proceso = isset($_POST['proceso']) ? $_POST['proceso']:"";
if($proceso=="Iniciar sesión"){
$usuario = $_POST['usuario'];
$clave = $_POST['pas'];
//Realizamos la consulta
$consultaUsuario = "SELECT * FROM nombre_tabla_BD WHERE usuario='$usuario' AND pas='$clave'";
$resultadoUsuario = mysql_query($consultaUsuario);
$filaUsuario = mysql_fetch_array($resultadoUsuario);
$xCodigo = $filaUsuario['id'];
$xAlias = $filaUsuario['nombre'];
$xEmail = $filaUsuario['email'];
$xUsuario = $filaUsuario['usuario'];
//Verificamos si por lo menos encontro una coincidencia para generar
//Las variables de sesion
$numUsuarios = mysql_num_rows($resultadoUsuario);
if($numUsuarios>=1){
//generamos las variables globales de sesion
session_start();
$_SESSION['xCodigo'] = $xCodigo;
$_SESSION['xAlias'] = $xAlias;
$_SESSION['xEmail'] = $xEmail;
$_SESSION['xUsuario'] = $xUsuario;
header ("Location: index.php");
}else{
header ("Location: seguridad.php");
}
}
?>
Código PHP:
<?php
session_start();
$xCodigo = $_SESSION['xCodigo'];
$xAlias = $_SESSION['xAlias'];
$xEmail = $_SESSION['xEmail'];
$xUsuario = $_SESSION['xUsuario'];
?>
Encontré buscando un código que creo que podría ser algo parecido a lo que necesito, pero no estoy seguro ni se como podría adaptarlo a mi código.
Código PHP:
$mysql="UPDATE nombre_tabla_BD SET n_conex='".($row[4]+1)."' WHERE id='".$row[5]."'";