Changeset 1511


Ignore:
Timestamp:
Jul 28, 2006, 11:34:27 AM (18 years ago)
Author:
nikrou
Message:

Fix bug 451: improvement
small problem with reconnexion after session timeout
add auto-login function
all staff for session (connexion, auto-login and logout)
is now in include/user.inc.php

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/identification.php

    r1494 r1511  
    6464      $remember_me = true;
    6565    }
    66     log_user( $row['id'], $remember_me);
     66    log_user($row['id'], $remember_me);
    6767    redirect(empty($redirect_to) ? make_index_url() : $redirect_to);
    6868  }
     
    7474elseif (!empty($_COOKIE[$conf['remember_me_name']]))
    7575{
    76   $cookie = unserialize(pwg_stripslashes($_COOKIE[$conf['remember_me_name']]));
    77   $query = '
    78 SELECT auto_login_key
    79   FROM '.USERS_TABLE.'
    80   WHERE '.$conf['user_fields']['id'].' = '.$cookie['id'].'
    81 ;';
    82 
    83   $auto_login_key = current(mysql_fetch_assoc(pwg_query($query)));
    84   if ($auto_login_key == $cookie['key'])
    85   {
    86     log_user($cookie['id'], false);
    87     redirect(empty($redirect_to) ? make_index_url() : $redirect_to);
    88   }
    89   else
    90   {
    91     setcookie($conf['remember_me_name'], '', 0, cookie_path());
    92     redirect(empty($redirect_to) ? make_index_url() : $redirect_to);
    93   }
     76  auto_login();
    9477}
    9578//----------------------------------------------------- template initialization
  • trunk/include/functions_user.inc.php

    r1493 r1511  
    551551function log_user($user_id, $remember_me)
    552552{
    553   global $conf;
     553  global $conf, $user;
    554554
    555555  if ($remember_me)
     
    582582  session_start();
    583583  $_SESSION['pwg_uid'] = $user_id;
     584
     585  $user['id'] = $_SESSION['pwg_uid'];
     586  $user['is_the_guest'] = false;
     587}
     588
     589/*
     590 * Performs auto-connexion when cookie remember_me exists
     591 * @return void
     592*/
     593function auto_login() {
     594  global $conf;
     595
     596  $cookie = unserialize(pwg_stripslashes($_COOKIE[$conf['remember_me_name']]));
     597  $query = '
     598SELECT auto_login_key
     599  FROM '.USERS_TABLE.'
     600  WHERE '.$conf['user_fields']['id'].' = '.$cookie['id'].'
     601;';
     602
     603  $auto_login_key = current(mysql_fetch_assoc(pwg_query($query)));
     604  if ($auto_login_key == $cookie['key'])
     605  {
     606    log_user($cookie['id'], false);
     607    redirect(make_index_url());
     608  }
     609  else
     610  {
     611    setcookie($conf['remember_me_name'], '', 0, cookie_path());
     612    redirect(make_index_url());
     613  }
    584614}
    585615
  • trunk/include/menubar.inc.php

    r1503 r1511  
    4545    'U_REGISTER' => get_root_url().'register.php',
    4646    'U_LOST_PASSWORD' => get_root_url().'password.php',
    47     'U_LOGOUT' => add_url_params(make_index_url(), array('act'=>'logout') ),
     47    'U_LOGOUT' => get_root_url().'?act=logout',
    4848    'U_ADMIN'=> get_root_url().'admin.php',
    4949    'U_PROFILE'=> get_root_url().'profile.php',
  • trunk/include/user.inc.php

    r1231 r1511  
    2626// +-----------------------------------------------------------------------+
    2727
    28 // retrieving connected user informations
    2928if (isset($_COOKIE[session_name()]))
    3029{
    31  session_start();
    32  if (isset($_SESSION['pwg_uid']))
    33  {
    34    $user['id'] = $_SESSION['pwg_uid'];
    35    $user['is_the_guest'] = false;
    36  }
    37  else
    38  {
    39    // session timeout
    40    $user['id'] = $conf['guest_id'];
    41    $user['is_the_guest'] = true;
    42  }
     30  session_start();
     31  if (isset($_GET['act']) and $_GET['act'] == 'logout')
     32  {
     33    // logout
     34    $_SESSION = array();
     35    session_unset();
     36    session_destroy();
     37    setcookie(session_name(),'',0,
     38              ini_get('session.cookie_path'),
     39              ini_get('session.cookie_domain')
     40              );
     41    setcookie($conf['remember_me_name'], '', 0, cookie_path());
     42    redirect(make_index_url());
     43  }
     44  elseif (empty($_SESSION['pwg_uid']))
     45  {
     46    // timeout
     47    setcookie(session_name(),'',0,
     48              ini_get('session.cookie_path'),
     49              ini_get('session.cookie_domain')
     50              );
     51  }
     52  else
     53  {
     54    $user['id'] = $_SESSION['pwg_uid'];
     55    $user['is_the_guest'] = false;
     56  }
    4357}
     58elseif (!empty($_COOKIE[$conf['remember_me_name']]))
     59{
     60  auto_login();
     61}
    4462else
    4563{
    46  $user['id'] = $conf['guest_id'];
    47  $user['is_the_guest'] = true;
     64  $user['id'] = $conf['guest_id'];
     65  $user['is_the_guest'] = true;
     66}
     67
     68if ($user['is_the_guest'] and !$conf['guest_access'])
     69{
     70  redirect (get_root_url().'identification.php');
    4871}
    4972
     
    5982  $user['is_the_guest'] = false;
    6083}
     84
    6185$user = array_merge(
    6286  $user,
  • trunk/index.php

    r1503 r1511  
    3636check_status(ACCESS_GUEST);
    3737
    38 //---------------------------------------------------------------------- logout
    39 if ( isset( $_GET['act'] )
    40      and $_GET['act'] == 'logout'
    41      and isset( $_COOKIE[session_name()] ) )
    42 {
    43   // cookie deletion if exists
    44   $_SESSION = array();
    45   session_unset();
    46   session_destroy();
    47   setcookie(session_name(),'',0,
    48       ini_get('session.cookie_path'), ini_get('session.cookie_domain') );
    49   redirect( make_index_url() );
    50 }
    51 if ($user['is_the_guest'] and !$conf['guest_access'])
    52 {
    53   redirect (get_root_url().'identification.php');
    54 }
    55 
    5638//---------------------------------------------- change of image display order
    5739if (isset($_GET['image_order']))
Note: See TracChangeset for help on using the changeset viewer.