Inlog script logt uit na 2 snelle kliks

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Joost van der Meijden

Joost van der Meijden

11/05/2013 16:50:00
Quote Anchor link
Beste PHP-ers,

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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..


Mvg, Joost.
Gewijzigd op 11/05/2013 17:34:13 door Joost van der Meijden
 
PHP hulp

PHP hulp

24/04/2024 11:43:18
 
Koen Hollander

Koen Hollander

11/05/2013 20:49:52
Quote Anchor link
Start je je sessie wel?
session_start();
 
Joost van der Meijden

Joost van der Meijden

12/05/2013 11:28:31
Quote Anchor link
Joost van der Meijden op 11/05/2013 16:50:00:
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?

Het probleem doet zich voor als je al bent ingelogd. De gebruiker is dus ingelogd en op het beveiligde gedeelte. Hij kan gewoon rondklikken, maar wanneer de pagina nog niet helemaal is geladen en hij snel op een andere link klikt gaat het fout. Op de een of andere manier weettie dan niet meer de goede key ofzo.

Hier ben ik achter gekomen door sleep(1) te gebruiken waardoor het laden van de pagina langer duurt.

Het ligt dus niet aan session_start(), de session word namelijk wel gevuld, en de database ook.
Gewijzigd op 12/05/2013 13:27:58 door Joost van der Meijden
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.