function udb_authenticate()
{
    global $HTTP_COOKIE_VARS, $USER_DATA, $UDB_DB_LINK_ID, $UDB_DB_NAME_PREFIX, $CONFIG;
    global $HTTP_SERVER_VARS, $HTTP_X_FORWARDED_FOR, $HTTP_PROXY_USER, $REMOTE_ADDR;
    global $password, $username, $pwseed, $settings, $ID_MEMBER, $realname, $txt;
    $pwseed = YS_PASSWD_SEED;
    LoadCookie();
    LoadUserSettings();
    cm_banning();
    // For error checking
    $CONFIG['TABLE_USERS'] = '**ERROR**';
    // Permissions for a default group
    $default_group = array('group_id' => YS_GUEST_GROUP, 'group_name' => CM_GUEST_GROUP_NAME, 'has_admin_access' => 0, 'can_see_all_albums' => 0, 'can_send_ecards' => 0, 'can_rate_pictures' => 0, 'can_post_comments' => 0, 'can_upload_pictures' => 0, 'can_create_albums' => 0, 'pub_upl_need_approval' => 1, 'priv_upl_need_approval' => 1, 'upload_form_config' => 0, 'custom_user_upload' => 0, 'num_file_upload' => 0, 'num_URI_upload' => 0);
    // get first 50 chars
    $HTTP_USER_AGENT = substr($HTTP_SERVER_VARS['HTTP_USER_AGENT'], 0, 50);
    $REMOTE_ADDR = substr($HTTP_SERVER_VARS['REMOTE_ADDR'], 0, 50);
    /* If the user is a guest, initialize all the critial user settings */
    if ($username == '' || $username == 'Guest') {
        $result = db_query("SELECT * FROM {$CONFIG['TABLE_USERGROUPS']} WHERE group_id = " . YS_GUEST_GROUP);
        if (!mysql_num_rows($result)) {
            $USER_DATA = $default_group;
        } else {
            $USER_DATA = mysql_fetch_array($result);
        }
        $USER_DATA['has_admin_access'] = 0;
        $USER_DATA['can_see_all_albums'] = 0;
        $USER_DATA['groups'] = array(YS_GUEST_GROUP);
        define('USER_ID', 0);
        define('USER_NAME', 'Anonymous');
        define('USER_GROUP_SET', '(' . YS_GUEST_GROUP . ')');
        define('USER_IS_ADMIN', 0);
        define('USER_CAN_SEND_ECARDS', (int) $USER_DATA['can_send_ecards']);
        define('USER_CAN_RATE_PICTURES', (int) $USER_DATA['can_rate_pictures']);
        define('USER_CAN_POST_COMMENTS', (int) $USER_DATA['can_post_comments']);
        define('USER_CAN_UPLOAD_PICTURES', (int) $USER_DATA['can_upload_pictures']);
        define('USER_CAN_CREATE_ALBUMS', 0);
        define('USER_UPLOAD_FORM', (int) $USER_DATA['upload_form_config']);
        define('CUSTOMIZE_UPLOAD_FORM', (int) $USER_DATA['custom_user_upload']);
        define('NUM_FILE_BOXES', (int) $USER_DATA['num_file_upload']);
        define('NUM_URI_BOXES', (int) $USER_DATA['num_URI_upload']);
        mysql_free_result($result);
    } else {
        if ($settings[7] == 'Administrator' || $settings[7] == 'Global Moderator') {
            $cm_group_id = $settings[7] == 'Administrator' ? YS_ADMIN_GROUP : YS_GMOD_GROUP;
        }
        if ($settings[7] == '') {
            $cm_group_id = YS_MEMBERS_GROUP;
        }
        if (!$cm_group_id) {
            $sql = "SELECT group_id " . "FROM {$CONFIG['TABLE_USERGROUPS']} " . "WHERE group_name = '" . $settings[7] . "'";
            $result = db_query($sql);
            if (mysql_num_rows($result)) {
                $temp = mysql_fetch_array($result);
                $cm_group_id = $temp[0];
            } else {
                $cm_group_id = YS_MEMBERS_GROUP;
            }
        }
        // Retrieve group information
        $sql = "SELECT * " . "FROM {$CONFIG['TABLE_USERGROUPS']} " . "WHERE group_id = '" . $cm_group_id . "'";
        $result = db_query($sql);
        if (mysql_num_rows($result)) {
            $USER_DATA = mysql_fetch_assoc($result);
        } else {
            $USER_DATA = $default_group;
        }
        if (get_magic_quotes_gpc() == 0) {
            $realname = mysql_escape_string($realname);
            $USER_DATA['group_name'] = mysql_escape_string($USER_DATA['group_name']);
        }
        $USER_DATA['has_admin_access'] = $settings[7] == YS_ADMIN_GROUP;
        $USER_DATA['can_see_all_albums'] = $USER_DATA['has_admin_access'];
        $USER_DATA['groups'] = array($USER_DATA['group_id']);
        define('USER_ID', $ID_MEMBER);
        define('USER_NAME', $realname);
        define('YSE_USER_NAME', $username);
        define('USER_GROUP', $USER_DATA['group_name']);
        define('USER_GROUP_SET', '(' . $USER_DATA['group_id'] . ')');
        define('USER_IS_ADMIN', $settings[7] == 'Administrator');
        define('USER_CAN_SEND_ECARDS', (int) $USER_DATA['can_send_ecards']);
        define('USER_CAN_RATE_PICTURES', (int) $USER_DATA['can_rate_pictures']);
        define('USER_CAN_POST_COMMENTS', (int) $USER_DATA['can_post_comments']);
        define('USER_CAN_UPLOAD_PICTURES', (int) $USER_DATA['can_upload_pictures']);
        define('USER_CAN_CREATE_ALBUMS', (int) $USER_DATA['can_create_albums']);
        define('USER_UPLOAD_FORM', (int) $USER_DATA['upload_form_config']);
        define('CUSTOMIZE_UPLOAD_FORM', (int) $USER_DATA['custom_user_upload']);
        define('NUM_FILE_BOXES', (int) $USER_DATA['num_file_upload']);
        define('NUM_URI_BOXES', (int) $USER_DATA['num_URI_upload']);
        mysql_free_result($result);
    }
}
function udb_authenticate()
{
    global $HTTP_COOKIE_VARS, $USER_DATA, $UDB_DB_LINK_ID, $UDB_DB_NAME_PREFIX, $CONFIG;
    global $HTTP_SERVER_VARS, $HTTP_X_FORWARDED_FOR, $HTTP_PROXY_USER, $REMOTE_ADDR;
    global $password, $username, $pwseed, $settings, $ID_MEMBER, $realname, $txt, $user_info, $user_settings;
    $pwseed = SMF_PASSWD_SEED;
    session_start();
    reloadSettings();
    LoadUserSettings();
    // For error checking
    $CONFIG['TABLE_USERS'] = '**ERROR**';
    // get first 50 chars
    $HTTP_USER_AGENT = substr($HTTP_SERVER_VARS['HTTP_USER_AGENT'], 0, 50);
    $REMOTE_ADDR = substr($HTTP_SERVER_VARS['REMOTE_ADDR'], 0, 50);
    /* If the user is a guest, initialize all the critial user settings */
    if (!$ID_MEMBER) {
        $USER_DATA = cpgGetUserData(SMF_GUEST_GROUP, array(SMF_GUEST_GROUP), SMF_GUEST_GROUP);
        define('USER_ID', 0);
        define('USER_NAME', 'Anonymous');
        define('USER_GROUP_SET', '(' . SMF_GUEST_GROUP . ')');
        define('USER_IS_ADMIN', 0);
        define('USER_CAN_SEND_ECARDS', (int) $USER_DATA['can_send_ecards']);
        define('USER_CAN_RATE_PICTURES', (int) $USER_DATA['can_rate_pictures']);
        define('USER_CAN_POST_COMMENTS', (int) $USER_DATA['can_post_comments']);
        define('USER_CAN_UPLOAD_PICTURES', (int) $USER_DATA['can_upload_pictures']);
        define('USER_CAN_CREATE_ALBUMS', 0);
        define('USER_UPLOAD_FORM', (int) $USER_DATA['upload_form_config']);
        define('CUSTOMIZE_UPLOAD_FORM', (int) $USER_DATA['custom_user_upload']);
        define('NUM_FILE_BOXES', (int) $USER_DATA['num_file_upload']);
        define('NUM_URI_BOXES', (int) $USER_DATA['num_URI_upload']);
    } else {
        if ($user_settings['ID_GROUP']) {
            $cm_group_id = $user_settings['ID_GROUP'];
        } else {
            if ($user_settings['ID_POST_GROUP'] && defined('USE_POST_GROUPS')) {
                $cm_group_id = $user_settings['ID_POST_GROUP'];
            } else {
                $cm_group_id = SMF_MEMBERS_GROUP;
            }
        }
        // Retrieve group information
        $USER_DATA = cpgGetUserData($cm_group_id, $user_info['groups'], SMF_GUEST_GROUP);
        $USER_DATA['has_admin_access'] = $user_info['is_admin'];
        $USER_DATA['can_see_all_albums'] = $USER_DATA['has_admin_access'] | in_array(SMF_GMOD_GROUP, $user_info['groups']);
        define('USER_ID', $ID_MEMBER);
        define('USER_NAME', $user_info['name']);
        define('SMF_USER_NAME', $user_info['username']);
        define('USER_GROUP', $USER_DATA['group_name']);
        define('USER_GROUP_SET', '(' . implode(",", $USER_DATA['groups']) . ')');
        define('USER_IS_ADMIN', $user_info['is_admin']);
        define('USER_CAN_SEND_ECARDS', (int) $USER_DATA['can_send_ecards']);
        define('USER_CAN_RATE_PICTURES', (int) $USER_DATA['can_rate_pictures']);
        define('USER_CAN_POST_COMMENTS', (int) $USER_DATA['can_post_comments']);
        define('USER_CAN_UPLOAD_PICTURES', (int) $USER_DATA['can_upload_pictures']);
        define('USER_CAN_CREATE_ALBUMS', (int) $USER_DATA['can_create_albums']);
        define('USER_UPLOAD_FORM', (int) $USER_DATA['upload_form_config']);
        define('CUSTOMIZE_UPLOAD_FORM', (int) $USER_DATA['custom_user_upload']);
        define('NUM_FILE_BOXES', (int) $USER_DATA['num_file_upload']);
        define('NUM_URI_BOXES', (int) $USER_DATA['num_URI_upload']);
    }
}