du machst dir das echt sau kompliziert...
also zu den namen und anderen daten speicherst du in der DB noch einen Hash und einen timestamp ! (2 neue felder)
nun sobald der user sich eingelogt hat speicherst du einen eigens generierten hash und die zeit in der DB und in der session var NUR den hash... anhand diesen wir der user erkannt und können weitere seiten angekuckt werden und daten geladen werden hohle keine daten anhand des benutzernamens oder sowas..
eine Session zu generieren mit dem Namen ist die eine sache was sicher geht dann wäre dein script gehackt..
eine Session zu generieren mit einem gültige hash ist unmöglich
das session_destroy() lösst du damit das du schaust ob der timestamp in der DB nicht abgelaufen ist... wenn ja ist die session ungültig ansonsten is halt noch gültig..
achja. um zu prüfen ob mr. X eingelogt ist einfach in der user tabelle nach dem hash suchen ist er nicht da ist der user auch nicht eingelogt

so und nun sind alle probleme gelöst
wenn du ein beispiel script haben magst sag bescheid hab da was