login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Sessions voor langer tijd

Offline BladiN - 09/11/2004 23:51
Avatar van BladiNGouden medailleGouden medaille

Grafische gevorderde
Nu worden sessions afgekapt als je de site verlaat, maar kan ik deze ook voor langere tijd vastzetten? Of kan dit alleen met cookies? En dan nog iets, stel ik zet een cookie (dus hij heeft auto login) kan ik dan gewoon in de config anders iedere x een session laten schrijven (wat ik bij login dus ook doe) dus dat de gegevens in sessions staat maar alleen autologin in n cookie? (dan moet ik dus ook bv een id meegeven om deze via sql op te vragen, of zie ik dat verkeerd)

4 antwoorden

Gesponsorde links
Offline DRUNK - 10/11/2004 00:14 (laatste wijziging 10/11/2004 18:01)
Avatar van DRUNK PHP gevorderde Over het cookie zie je helemaal goed, volgens mij. De sessie kan je alleen 'terug' halen door middel van cookies. Hier een stuk code wat ik zelf gebruik:
  1. <?php
  2. // Controleren of de sessie al bezig is of niet en kijk of eer een
  3. // login cookie geplaatst is op de client PC.
  4. if (!isset($_SESSION['login']) && isset($_COOKIE['cookie'])) {
  5.  
  6. // Cookie gevonden, sessie niet actief. Stop de
  7. // inhoud van cookie in $info array
  8. $info = explode('%', $_COOKIE['cookie']);
  9.  
  10. // kijken of de info uit cookie
  11. // een bestaande gebruiker is
  12. $u_info = mysql_query("
  13. SELECT uid, gid, last_ip, level
  14. FROM users
  15. WHERE uid = ".$info[0]." AND passwd = '".$info[1]."'
  16. ");
  17.  
  18. // Was de gebruiker met het cookie
  19. // gevonden in de database? Als het
  20. // aantal meer dan 0 is zal het wel toch?
  21. if (mysql_num_rows($u_info) > 0) {
  22.  
  23. // Controleren of last_ip en het huidige
  24. // IP adres overeen komen, is dit niet zo
  25. // bestaat de kan dat het een vervalst of
  26. // gestoolen cookie is, laat dan de sessie
  27. // nietmeer opnieuw startten.
  28. if (mysql_result($u_info, 0, "last_ip") === get_ip()) {
  29.  
  30. // gegevens in Cookie waren van een
  31. // bestaande gebruiker, laat de sessie
  32. // opnieuw beginnen.
  33. $_SESSION['login'] = true;
  34. $_SESSION['uid'] = mysql_result($u_info, 0, "uid");
  35.  
  36. // Het gebruikers niveau, hier kan later naar gekeken worden, wat de gebruiker wel
  37. // of niet mag, voor de toekenning wor nog gekeken of de gebruiker lid is
  38. // van een bepaalde groep, als dit zo is kijk of de groeps-rechten hoger zijn
  39. // dan zijn eigen rechten. Als zijn eigen rechten lager zijn vervallen deze, de
  40. // gebruiker heeft namelijk via de groep al alle mogelijkheden. Is de gebruiker
  41. // niet lid van een groep of de gebruiker heeft nog extra rechten dan vervallen
  42. // de groepsrechten, omdat gebruiker alles al mag doen vanuit de eigen rechten.
  43. $_SESSION['level'] = ($u_info['gid'] > $u_info['level']) ? $u_info['gid'] : $u_info['level'];
  44.  
  45. // Reset het login cookie, zodat deze weer langer geldig is
  46. setcookie('cookie', $info[0] . '%' . $info[1] . '%' . $info[2], time() + $info[2]);
  47. }
  48. }
  49. }
  50. ?>


--edit: de bedoeling was dat het HIER cookie heet.
Offline Thomas - 10/11/2004 11:29
Avatar van Thomas Moderator 1. waarom heet je cookie eerst "cookie" en dan "zeeuwseogen_login" ?
2. http://www.site...&id=85
Offline BladiN - 10/11/2004 12:30
Avatar van BladiN Gouden medailleGouden medaille

Grafische gevorderde
Is het ook mogelijk om een cookie voor altijd mee te geven? of doe je dat dan gewoon zonder tijd in te vullen. En bedankt voo rhet script 
Offline Scott - 10/11/2004 12:33 (laatste wijziging 10/11/2004 12:33)
Avatar van Scott Gouden medaille

PHP ver gevorderde
Nee, is neit mogelijk, je kunt natuurlijk wel een hele lange tijd meegeven, voor 5 jaar ofzo..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.177s