Originariamente inviato da mystica
ah ecco,
ma quindi mi consigli di metterli entrambi come DATETIME?
e la session_id scade automaticamente?
la mia sessione si chiama $_SESSION['prodotti']
quindi devo mettere if isset sessione prodotti giusto?
Detto cosi' mi pare una valanga inaspettata....

Non ho chiaro tutto il tuo discorso. La sessione scade lato client quando si chiude il browser (si fuma il cookie di sessione) oppure lato SERVER al raggiungimento del time out di non operativita'. Ci sono alcuni settaggi in php.ini.

Per quanto riguarda la tua sessione in corso, verificherei prima di tutto al passaggio in una nuova pagina se la sessione recuperata da session_start corrisponda a quella lasciata. Perche'? per evitare che qualcuno punti direttamente da URL a questa nuova pagina dopo aver chiuso il browser. Gli verrebbe assegnata una nuova sessione.

pag1
session_start();
$_SESSION['id_session'] = session_id();

pag successiva
session_start();
if(isset($_SESSION['id_session']) AND $_SESSION['id_session'] == session_id()) ok
else vai alla prima pagina.

Puo' essere considerato un eccesso di prudenza, ma per me ci sta tutto.

Nel db puoi lasciare il timestamp. I casi sono due o mette qualcosa o mette nulla. Se mette aggiorni il timestamp, magari contando i pezzi inseriti ( update tabella set conta = conta +1) in questo modo il tempo viene aggiornato. Bisognerebbe anche considerare come sono la/le tabelle che usi.