Ignore:
Timestamp:
Oct 20, 2006, 4:17:53 AM (18 years ago)
Author:
rvelices
Message:

used in the code (generates mysql errors on session garbage collector)

  • fix auto_login (die mysql when session timed out, but user has remember)
  • when a user reconnects from identification.php, the remember cookie was not

deleted

  • fix all redirect warnings/errors (many changes - mainly in common.inc.php

and user.inc.php)

login the 60 days countdown restarts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/functions_user.inc.php

    r1567 r1568  
    105105}
    106106
     107function build_user( $user_id, $use_cache )
     108{
     109  global $conf;
     110  $user['id'] = $user_id;
     111  $user = array_merge( $user, getuserdata($user_id, $use_cache) );
     112  if ( $user['id'] == $conf['guest_id'])
     113  {
     114    $user['is_the_guest']=true;
     115    $user['template'] = $conf['default_template'];
     116    $user['nb_image_line'] = $conf['nb_image_line'];
     117    $user['nb_line_page'] = $conf['nb_line_page'];
     118    $user['language'] = $conf['default_language'];
     119    $user['maxwidth'] = $conf['default_maxwidth'];
     120    $user['maxheight'] = $conf['default_maxheight'];
     121    $user['recent_period'] = $conf['recent_period'];
     122    $user['expand'] = $conf['auto_expand'];
     123    $user['show_nb_comments'] = $conf['show_nb_comments'];
     124    $user['enabled_high'] = $conf['newuser_default_enabled_high'];
     125  }
     126  else
     127  {
     128    $user['is_the_guest']=false;
     129  }
     130  // calculation of the number of picture to display per page
     131  $user['nb_image_page'] = $user['nb_image_line'] * $user['nb_line_page'];
     132
     133  // include template/theme configuration
     134  if (defined('IN_ADMIN') and IN_ADMIN)
     135  {
     136    list($user['template'], $user['theme']) =
     137      explode
     138      (
     139        '/',
     140        isset($conf['default_admin_layout']) ? $conf['default_admin_layout']
     141                                             : $user['template']
     142      );
     143    // TODO : replace $conf['admin_layout'] by $user['admin_layout']
     144  }
     145  else
     146  {
     147    list($user['template'], $user['theme']) = explode('/', $user['template']);
     148  }
     149
     150  return $user;
     151}
     152
    107153/**
    108154 * find informations related to the user identifier
     
    581627              );
    582628  }
    583   session_start();
     629  else
     630  { // make sure we clean any remember me ...
     631    setcookie($conf['remember_me_name'], '', 0, cookie_path());
     632  }
     633  if ( session_id()!="" )
     634  { // this can happpen when the session is expired and auto_login
     635    session_regenerate_id();
     636  }
     637  else
     638  {
     639    session_start();
     640  }
    584641  $_SESSION['pwg_uid'] = $user_id;
    585642
    586643  $user['id'] = $_SESSION['pwg_uid'];
    587   $user['is_the_guest'] = false;
    588644}
    589645
    590646/*
    591647 * Performs auto-connexion when cookie remember_me exists
    592  * @return void
     648 * @return true/false
    593649*/
    594650function auto_login() {
    595651  global $conf;
    596652
    597   // must remove slash added in include/common.inc.php
    598   $cookie = unserialize(stripslashes($_COOKIE[$conf['remember_me_name']]));
    599 
    600   $query = '
     653  if ( isset( $_COOKIE[$conf['remember_me_name']] ) )
     654  {
     655    // must remove slash added in include/common.inc.php
     656    $cookie = unserialize(stripslashes($_COOKIE[$conf['remember_me_name']]));
     657
     658    $query = '
    601659SELECT auto_login_key
    602660  FROM '.USERS_TABLE.'
     
    604662;';
    605663
    606   $auto_login_key = current(mysql_fetch_assoc(pwg_query($query)));
    607   if ($auto_login_key == $cookie['key'])
    608   {
    609     log_user($cookie['id'], false);
    610     redirect(make_index_url());
    611   }
    612   else
    613   {
    614     setcookie($conf['remember_me_name'], '', 0, cookie_path());
    615     redirect(make_index_url());
    616   }
     664    $auto_login_key = current(mysql_fetch_assoc(pwg_query($query)));
     665    if ($auto_login_key == $cookie['key'])
     666    {
     667      log_user($cookie['id'], true);
     668      return true;
     669    }
     670    else
     671    {
     672      setcookie($conf['remember_me_name'], '', 0, cookie_path());
     673    }
     674  }
     675  return false;
    617676}
    618677
Note: See TracChangeset for help on using the changeset viewer.