Ik heb een inlog script gemaakt waarin na ieder bezoek aan een pagina een nieuwe session word aangemaakt met hierin een uniek id.
Aan de hand van dit id (ook in database opgeslagen) weet ik dat het dezelfde gebruiker is. Wanneer dit id dus niet meer klopt wordt een gebruiker automatisch uitgelogd.
Nu heb ik het volgende probleem: als een gebruiker op de een link klikt, en daarna snel op een andere link klikt is de gebruiker uitgelogd. Hoe kan ik dit voorkomen?
[edit]Ik zat zelf te denken aan een SQL TRANSACTION, wanneer de session is geset pas de SQL echt uitvoeren ofzo? Anders ROLLBACK? Maar dan behoud je nogsteeds het probleem denk ik? Heb ook nog nooit met TRANSACTIONS gewerkt.[/edit]
[edit=edit2]
<?php
private function _createKey($id) {
$key = time(); // uiteraard bestaat dit niet alleen uit time() ;)
$this->db->trans_begin();
$this -> db -> where('id', $id);
$this -> db -> update('login', array("key" => $key));
$this -> session -> set_userdata('key', $key);
if ($this->db->trans_status() == true && $this -> session -> userdata('key') == $key) {
$this -> _key = $key;
$this->db->trans_commit();
}
else {
$this->db->trans_rollback();
}
}
?>Dit lost het probleem in ieder geval niet op..[/edit]Mvg, Joost.