Adesso mi funziona perfettamente. Copiando il tuo codice mi sono accorto che per il logout rimandi alla pagina 'logout.php'; la soluzione sarebbe questa(contenuto di logout.php):
Codice PHP:
<?php
     
include 'connect.php';// o require come vuoi tu
     
header("Refresh: 4; URL=../jackerbill/prova.php");//questo url fà riferimento alla cartella che ho usato
     
session_unset();
     
session_destroy();
     
session_write_close();
     
setcookie(session_name(),'',0,'/');
    
?>
nel caso in cui non dovesse funzionare usa anche questo al posto della pagina che usi:
Codice PHP:
<?php

session_start
();


require 
'config.php';
require 
'connect.php';


$mail mysql_real_escape_string($_POST['email']);
$pwd mysql_real_escape_string($_POST['pwd']);

$error 'empty';

if((
$mail) && ($pwd == "")) {
$error 'no_pwd';
}

elseif((
$pwd) && ($mail == "")) {
$error 'no_mail';
}

elseif((
$mail) && ($pwd)) {

$log_query "SELECT * FROM utenti WHERE email = "provajack@hotmail.it'";//fai $_post con email ma poi cerchi mail nel database?
$log_data = mysql_query($log_query);//$link da dove lo prendevi scusa?(non c'
e nella paginainoltre non devi specificare di nuovo la connessione al database se quella che ti serve è stata l'ultima che hai aperto)
$n = mysql_num_rows($log_data);

if($n == 0) {
$error = '
mail_err';
}

else {

$data = mysql_fetch_array($log_data);/*prendo i dati di tutti gli utenti con la email uguale a quella inserita
il nome contenuto tra [] dipende dal nome campo contenuto nel database*/
$uid = $data['
id'];
//$status = $data['
status'];
$key = $data['
key'];
$user = $data['
username'];
$user_pwd = $data['
password'];


if($n != 1) {//questo per prevenire errori del database, per esempio pari a 2(non capita ma quando capita...)
$error = '
no_act';
}else{

$pwd = sha1($pwd);//ho i dati in sha1, non md5, per questo ho cambiato, ricambia se vuoi

if(($user_pwd == $pwd)) {

$error = '
none';

$_SESSION['
key'] = $key;
$_SESSION['
mail'] = $mail;
$_SESSION['
pwd'] = $pwd;
$_SESSION['
username'] = $user;

}

else {

$error = '
pwd_err';

}

}

}

}



require '
header.php';
Occhio che ho cambiato dei valori per farli coincidere con nomi e le tabelle che ho nel database, inoltre il campo status l'avevo levato perchè non ho una campo del genere, quindi avevo usato di nuovo $n(inutile usare la stessa variabile 2 volte, ma dovevo solo provare) per la conta...
A me funziona perfettamente, non rimane nessuna sessione attiva e se premi indietro nel browser non rivedi i dati come succedeva a te.
Fammi sapere!