Salvataggio dati sessione in tabella

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve, ho un codice nella pagina di logout che mi salva tutti i dati di sessione, tipo ora,username ecc. riguardanti l'utente connesso che ha scelto di esegurie il logout, il tutto funziona alla perfezione, però ho notato che i record in tabella crescono in una maniera incredibile.
Ora vorrei fare che quando un'utente è già presente nella tabella di sessione mi deve aggiornare i dati, mentre se l'utente è nuovo deve inserirlo nel database.
Vi posto il codice che uso attualmente:

PHP:
<?php require_once ( '../myday/mytime.inc');
require_once('../ult_accesso.php'); ?>
<?
include('../site/header.php');
  if  ($_SESSION['logged_in'] = 0)
  {echo "sei già disconesso";}
  else {
  setcookie($nome_cookie, $joined, time() - 1, $percorso, $dominio);   
  session_destroy();
       header('Location: http://mio sito');
}
?>
<?php
$ora_inizio= $_SESSION['ora_inizio'];
 
if ($_SESSION['logged_in'] == 0)
{   
 $myday=date("d/m/Y");
$myquery = "INSERT INTO sessioni (username, email, data, ora_inizio, ora_fine) VALUES ('$username', '$mail', '$myday', '$ora_inizio', '$ora')";
 $insert2 = mysql_query($myquery);
 } else {
   if(!$insert2) die(mysql_error());  
   }
?>

Grazie :D
 
Ultima modifica:
Da come hai descritto le scenario una possibile soluzione potrebbe essere quella di partire dalla considerazione che nella tabella dove memorizzi le informazioni ci sarà una sola ennupla per ciascun utente.

Quindi sarà sufficiente fare una select specificando il criterio where camponomeutente=nomeutente.

Se ottieni 1 riga fai l'update dei dati viceversa fai l'insert.

Spero di esserti stato d'aiuto.

Ciro
 
concordo con la soluzione esposta da Lotus, utilizzerei però un id nella select invece che il nome utente per evitare ambiguità.
 
Io userei direttamente la tabella utenti a questo punto, aggiungendo 2 campi 'ultimo_login' e 'ultimo_logout'.
L'utente lo trovi sempre (perché il login può farlo solo se è registrato).
Se fa login modifichi il record mettendo la data dell'ultimo login. Se fa logout modifichi il record mettendo la data dell'ultimo logout. Se la data di login è < della data di logout è ancora loggato, altrimenti non è loggato. (Inizialmente il campo login e logout sarebbero NULL).
 

Discussioni simili