Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    MYSQL cancellare sessioni

    ciao ragazzi, io gestisco le sessioni con il DB, e ad ogni pagina cancello le SESSIONI SCADUTE COSI:
    codice:
    $time = time()-1800;
    
    $query = "DELETE * FROM sessioni WHERE tempo_sessioni < '$time'";
    
    ...............
    ma niente, mi cancella solo le sessioni più prossime, in modo inspiegabile, infatti ho 3 sessioni vecchie di 2 ore che non si cancellano ( succede con sessioni vecchie da qualche ora, diventano incancellabili con questo script), come mai?

  2. #2
    sia tempo_sessioni che $time debbono essere di tipo datetime

  3. #3
    Originariamente inviato da optime
    sia tempo_sessioni che $time debbono essere di tipo datetime
    quindi devo impostare la colonna tabella in modo che sia DATETIME??

    e come inserisco il dato? con la funzione time() ho solo i secondi....


    (ma come faccio io non funziona??, strano, ho una colonna INT(10) e m,emorizzo i secondi di creazione... poi verifico se è da piu di 30 min che è inserita ( < $time) come mai non funziona?

  4. #4
    ma tu registri QUANDO è iniziata la sessione, o QUANTO è durata la sessione? immagino QUANDO, per cui la data è fondamentale.

    ad esempio, se io inizio una sessione alle 23.00, riuscirò a cancellare la sezione SOLO dalle 23.01 alle 23.59. se invece considero anche la data... ci siamo capiti

  5. #5
    Originariamente inviato da optime
    ma tu registri QUANDO è iniziata la sessione, o QUANTO è durata la sessione? immagino QUANDO, per cui la data è fondamentale.

    ad esempio, se io inizio una sessione alle 23.00, riuscirò a cancellare la sezione SOLO dalle 23.01 alle 23.59. se invece considero anche la data... ci siamo capiti
    nono, non ho capito bene, scusami
    ma non riesco a capire perche il mio metodo non funzioni

    se io memorizzo la sessione adesso per esempio con timestamp (inventato)
    4000 ... passa mezzora di inattivita, chiunque ricarica la pagina e richiama lo script
    $tempo = time() -1800; (1800 = 30 min) (time() e l' ora e giorno e anno attuale espresso in secondi)
    DELETE * FROM sessioni WHERE tempo_sessioni <= $tempo'

    NON DOVREBBE FUNZIONARE? cancello cosi tutte le sessioni scadute da piu di 30 min

  6. #6

  7. #7
    Originariamente inviato da BOES
    d
    DELETE FROM e non DELETE * FROM

    non ho letto il resto.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.