login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Login systeem met cookies.

Offline Nanon - 28/08/2007 16:39
Avatar van NanonPHP interesse Beste webcoders,

Wat ik wil is dus een login systeem, die werkt met een "Onthoud mij" functie. Dit wordt dan geregeld door cookies. Ik stop deze cookies tevens ook in de database. Het volgende wordt dan opgeslagen in de database:

id ( auto increment )
user_id ( ID van de gebruiker )
ip ( IP van de computer waarvan wordt ingelogd )
hash ( een unieke hashcode )
expire ( tijd in timestamp om aan te geven checken wanneer de cookie verloopt )

Ik zal een cookie voor een maand ( 31 dagen ) onthouden. In de cookie sla ik alleen de unieke hashcode op die tevens ook in de database staat. Daarna controleer ik of de $_COOKIE['hash'] overkomt met de hashcode uit de database, dit doe ik ook met het gebruikers ID en het IP adres.

Nu is aan jullie om mij te vertellen of dit verstandig is. En hoe ik het anders beter zou kunnen doen.
En moet ik om de dag een cronjob laten draaien om te kijken of er cookies verlopen zijn?

Alvast bedankt!

4 antwoorden

Gesponsorde links
Offline marten - 28/08/2007 16:49
Avatar van marten Beheerder
Citaat:
Ik zal een cookie voor een maand ( 31 dagen ) onthouden


Jij misschien wel maar de gebruiker? Wat gebeurt er als er geen cookie bestaat? En in welke fase?
Stel ik log in. Cookie word aangemaakt. Ik verwijder de cookie en kan alles nog op de site?
Offline Nanon - 28/08/2007 16:51
Avatar van Nanon PHP interesse Nee. Want als jouw cookie niet meer bestaat kan hij hem niet controleren met de hashcode die in de database staat. En ben je niet ingelogd.
Offline marten - 28/08/2007 16:53
Avatar van marten Beheerder Maar word die controle met die hash 1 maal uitgevoerd tijdens het inloggen? En hoe zit het als ik een cookie 'steel' ?
Offline Nanon - 28/08/2007 16:57 (laatste wijziging 28/08/2007 17:00)
Avatar van Nanon PHP interesse Het wordt elke klik gecheckt. Omdat er op elke pagina de benodigde user info nodig is (community, hooray). Als jij een cookie steelt, dan komt alsnog het IP niet overeen. Ik flats even snel een query in elkaar.

  1. <?php
  2.  
  3. if( isset( $_COOKIE['hash'] ) && $_COOKIE['hash'] != '' ) {
  4.  
  5. mysql_query("SELECT
  6.  
  7. `users`.`id`,
  8.  
  9. `users`.`username`,
  10.  
  11. `users`.`more_fields`
  12.  
  13. FROM
  14.  
  15. `users`
  16.  
  17. LEFT JOIN
  18.  
  19. `users_cookies`
  20.  
  21. ON
  22.  
  23. `users`.`id` = `users_cookies`.`users_id`
  24.  
  25. WHERE
  26.  
  27. `users_cookies`.`hash` = '".$_COOKIE['hash']."'
  28.  
  29. AND
  30.  
  31. `users_cookies`.`ip` = '".$_SERVER['REMOTE_ADDR']."'
  32.  
  33. LIMIT 1") or die ( mysql_error() );
  34.  
  35. // meer code
  36.  
  37. }
  38.  
  39. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2026 Sitemasters.be - Regels - Laadtijd: 0.174s