Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar fecha y hora de Login.

Estas en el tema de Guardar fecha y hora de Login. en el foro de PHP en Foros del Web. Buen día amigos. Tengo un sitio creado en php y mysql, con un sistema de login, esto apunta a una tabla que contiene 4 campos: ...
  #1 (permalink)  
Antiguo 30/05/2014, 12:45
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Guardar fecha y hora de Login.

Buen día amigos.

Tengo un sitio creado en php y mysql, con un sistema de login, esto apunta a una tabla que contiene 4 campos: Nombre, Usuario, Contraseña y Nivel, pero además necesito agregar un campo que me ayude a guardar la fecha y hora de su última conexión, y de ser posible, cuantas veces ha ingresado.

He buscado en varios lugares, pero no he sido capaz de encontrar la respuesta, espero que alguien pueda darme una sugerencia.

Les agradezco, por lo menos, el haberme leído.
  #2 (permalink)  
Antiguo 30/05/2014, 12:55
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Guardar fecha y hora de Login.

hola karen.

Lo que pueds hacer es crear una tabla donde guardes el id del usuario y un campo datetime que guarde la fecha y hora.

Luego haces una funcion en a la cual puedas llamar cada vez que el usuario se autentica que se encargue de insertar en la nueva tabla el id del suario y la fecha actual


Co eso tendrías las 2 necesidades solucionadas ya que tendrías un log con la fecha y hora de cada conexion del usuario y tomando el ultimo registro del usuario podria saber la ultima conexion.

Saludos, si quieres realiza el código y cualquier duda que tengas la subes y te ayudamos a resolverla...saludos
  #3 (permalink)  
Antiguo 02/06/2014, 17:10
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Guardar fecha y hora de Login.

Hola, gracias por tu idea.

Te comento que ya hice la tabla, y un intento de código para guardar lo que necesito, pero no me guarda nada. :(

Es probable que esté terriblemente mal, o que simplemente sea un error tonto, sin embargo, no logro solucionarlo.

Código PHP:
if (isset($_POST['usuario'])) {
  
$loginUsername=$_POST['usuario'];
  
$password=$_POST['contrasena'];
  
$MM_fldUserAuthorization "Nivel";
  
$MM_redirectLoginSuccess "opcion2.php";
  
$MM_redirectLoginFailed "errorlogin.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_Pharma$Pharma);
      
  
$LoginRS__query=sprintf("SELECT Usuario, Contrasena, Nivel FROM login WHERE Usuario=%s AND Contrasena=%s",
  
GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text"));   
 
   if (
session_start()){
    if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {    
$insertSQL sprintf("INSERT INTO control_login (Usuario,Nivel,`Date`) VALUES '$loginUsername', '$MM_fldUserAuthorization',NOW()");}} 
  #4 (permalink)  
Antiguo 02/06/2014, 17:44
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar fecha y hora de Login.

Si vas a usar sesiones, es necesario (o conveniente) que la primera línea de tu script sea session_start(); porque eso te permitirá identificar al cliente, es decir, al navegador y tu script es quien debe encargarse de identificar si es usuario registrado o "invitado".

Supongo que después de $insertSQL = bla bla bla tendrás algo como:
mysql_query($insertSQL) or die('Error en consulta: ' . mysql_error());

Donde, casi tengo la seguridad, te darás cuenta que falta encerrar el conjunto de valores entre paréntesis:

Código MySQL:
Ver original
  1. INSERT INTO tabla (campo1, campo2, etc)
  2. VALUES ('valor1', 'valor2', NOW())
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 03/06/2014, 10:07
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Guardar fecha y hora de Login.

Tienes razón, cambié eso, y mi condicional, y ¡Listo! ya me guarda a los usuarios que hacen login. :) Te agradezco mucho.

Dejo el código completo, por si a alguien le interesa saber como quedó:

Código PHP:

<?php
if (!isset($_SESSION)) {
  
session_start();
}

$loginFormAction $_SERVER['PHP_SELF'];
if (isset(
$_GET['accesscheck'])) {
  
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset(
$_POST['usuario'])) {
  
$loginUsername=$_POST['usuario'];
  
$password=$_POST['contrasena'];
  
$MM_fldUserAuthorization "Nivel";
  
$MM_redirectLoginSuccess "opcion2.php";
  
$MM_redirectLoginFailed "errorlogin.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_Pharma$Pharma);
      
  
$LoginRS__query=sprintf("SELECT Usuario, Contrasena, Nivel FROM login WHERE Usuario=%s AND Contrasena=%s",
  
GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text")); 
   
  
$LoginRS mysql_query($LoginRS__query$Pharma) or die(mysql_error());
  
$loginFoundUser mysql_num_rows($LoginRS);
  if (
$loginFoundUser) {
    
    
$loginStrGroup  mysql_result($LoginRS,0,'Nivel');
    
    if (
PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    
$_SESSION['MM_Username'] = $loginUsername;
    
$_SESSION['MM_UserGroup'] = $loginStrGroup;          

    if (isset(
$_SESSION['PrevUrl']) && false) {
      
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];    
    }
    
header("Location: " $MM_redirectLoginSuccess );
  }
  else {
    
header("Location: "$MM_redirectLoginFailed );
  }
 if (
$loginFoundUser){
       
$insertSQL sprintf("INSERT INTO control_login (Usuario,Nivel,`Date`,Time) VALUES ('$loginUsername', '$loginStrGroup',NOW(),CURTIME())");

  
mysql_select_db($database_Pharma$Pharma);
  
$Result1 mysql_query($insertSQL$Pharma) or die(mysql_error());}
}
?>

Última edición por Karen_mBrK; 03/06/2014 a las 12:13

Etiquetas: fecha, mysql, tabla
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 16:27.