Вход Регистрация
Файл: includes/rss_functions.php
Строк: 227
<?php
// rss_funtions.php
// Part of RSS Feed MOD
// Edit: 2005-11-23
// Copyright (c) 2004-2005, Egor Naklonyaeff

function FormatLanguage($lng)
{
// You can add you ISO 639 coutry code here or remove unused codes
    
$iso639=array("albanian"=>"sq","arabic"=>"ar","azerbaijani"=>"az",
        
"bulgarian"=>"bg","chinese"=>"zh","chinese_simplified"=>"zh",
        
"chinese_traditional"=>"zh","croatian"=>"hr","czech"=>"cs",
        
"danish"=>"da","dutch"=>"nl","english"=>"en",
        
"esperanto"=>"eo","estonian"=>"et","finnish"=>"fi",
        
"french"=>"fr","japanese"=>"ja","galego"=>"gl",
        
"german"=>"de","greek"=>"el","hungarian"=>"hu",
        
"hebrew"=>"he","icelandic"=>"is","indonesian"=>"id",
        
"italian"=>"it","korean"=>"ko","kurdish"=>"ku",
        
"macedonian"=>"mk","moldavian"=>"mo","mongolian"=>"mn",
        
"norwegian"=>"no","polish"=>"pl","portuguese"=>"pt",
        
"romanian"=>"ro","russian"=>"ru","russian_tu"=>"ru",
        
"serbian"=>"sr","slovak"=>"sk","slovenian"=>"sl",
        
"spanish"=>"es","swedish"=>"sv","thai"=>"th",
        
"turkish"=>"tr","uigur"=>"ug","ukrainian"=>"uk",
        
"vietnamese"=>"vi","welsh"=>"cy");
    
$user_lang=(isset($iso639[$lng]))? $iso639[$lng]:'';
    return((
$user_lang!='')?"n<language>$user_lang</language>":'');
}
function 
RSSTimeFormat($utime,$uoffset=0)
{
    global 
$HTTP_GET_VARS,$user_id,$useragent;
    if(
CACHE_TO_FILE && ($user_id==ANONYMOUS) && empty($HTTP_GET_VARS))$uoffset=0;
    if((isset(
$HTTP_GET_VARS['time']) && $HTTP_GET_VARS['time']=='local')|| (strpos($useragent,'Abilon')!==false)|| (strpos($useragent,'ActiveRefresh')!==false))
    {
        
$uoffset=intval($uoffset);
    }
    else 
$uoffset=0;
    
$result=gmdate("D, d M Y H:i:s"$utime + (3600 $uoffset));
    
$uoffset=intval($uoffset*100);
    
$result.=' '.(($uoffset>0)?'+':'').(($uoffset==0)? 'GMT'sprintf((($uoffset<0)?"%05d":"%04d"),$uoffset));
    return 
$result;
}
function 
GetHTTPPasswd()
{
    
header('WWW-Authenticate: Basic realm="For registred users only"');
    
ExitWithHeader('401 Unauthorized','For registred users only');
}
function 
ExitWithHeader($output,$message='')
{
    global 
$db$HTTP_SERVER_VARS;
    
$db->sql_close();
    if(
function_exists("getallheaders")) header("HTTP/1.1 $output");
    else 
header('Status: '.$output);
    
$code=intval(substr($output,0,3));
    if((
$code==200)||($code==304))
    {
    if(isset(
$HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE'])) header("Last-Modified: ".$HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE']);
    if(isset(
$HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH'])) header("Etag: ".$HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH']);
    }
    if(!empty(
$message)) {
        
header ('Content-Type: text/plain');
        echo 
$message;
    }
    exit;
}
function 
rss_session_begin($user_id$user_ip$page_id)
{
    global 
$db$board_config,$HTTP_SERVER_VARS;
    
$page_id = (int) $page_id;
    
$user_id= (int) $user_id;
    
$password=md5($HTTP_SERVER_VARS['PHP_AUTH_PW']);
    
$last_visit 0;
    
$current_time time();
    
$expiry_time $current_time $board_config['session_length'];
    
$sql "SELECT *
        FROM " 
USERS_TABLE "
        WHERE user_id = 
$user_id";
    if ( !(
$result $db->sql_query($sql)) )
    {
        
ExitWithHeader('500 Internal Server Error','Could not obtain lastvisit data from user table');
    }
    
$userdata $db->sql_fetchrow($result);
    if((
$user_id!=ANONYMOUS) && (!$userdata || ($password != $userdata['user_password'])))
    {
        
ExitWithHeader('500 Internal Server Error','Error while create session');
    }
    
$login=( $user_id != ANONYMOUS )?1:0;

    
//
    // Initial ban check against user id, IP and email address
    //
    
preg_match('/(..)(..)(..)(..)/'$user_ip$user_ip_parts);

    
$sql "SELECT ban_ip, ban_userid, ban_email
        FROM " 
BANLIST_TABLE "
        WHERE ban_ip IN ('" 
$user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" $user_ip_parts[1] . "ffffff')
            OR ban_userid = 
$user_id";
    if ( 
$user_id != ANONYMOUS )
    {
        
$sql .= " OR ban_email LIKE '" str_replace("'""''"$userdata['user_email']) . "'
            OR ban_email LIKE '" 
substr(str_replace("'""''"$userdata['user_email']), strpos(str_replace("'""''"$userdata['user_email']), "@")) . "'";
    }
    if ( !(
$result $db->sql_query($sql)) )
    {
        
ExitWithHeader("500 Internal Server Error","Could not obtain ban information");
    }

    if ( 
$ban_info $db->sql_fetchrow($result) )
    {
        if ( 
$ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )
        {
            
ExitWithHeader("403 Forbidden","You been banned");
        }
    }

    list(
$sec$usec) = explode(' 'microtime());
    
mt_srand((float) $sec + ((float) $usec 100000));
    
$session_id md5(uniqid(mt_rand(), true));
    
$sql "INSERT INTO " SESSIONS_TABLE "
        (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)
        VALUES ('
$session_id', $user_id$current_time$current_time, '$user_ip', $page_id$login, 0)";
        if ( !
$db->sql_query($sql) )
        {
            
ExitWithHeader("500 Internal Server Error","Error creating new session");
        }
        
$last_visit = ( $userdata['user_session_time'] > ) ? $userdata['user_session_time'] : $current_time;
        
$sql "UPDATE " USERS_TABLE " SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit ";
        if(
LV_MOD_INSTALLED$sql.= ",user_lastlogon=$current_time, user_totallogon=user_totallogon+1";
        
$sql .=" WHERE user_id = $user_id";
        if ( !
$db->sql_query($sql) )
        {
             
ExitWithHeader("500 Internal Server Error",'Error updating last visit time');
        }

    
$userdata['user_lastvisit'] = $last_visit;
    
$userdata['session_id'] = $session_id;
    
$userdata['session_ip'] = $user_ip;
    
$userdata['session_user_id'] = $user_id;
    
$userdata['session_logged_in'] = $login;
    
$userdata['session_page'] = $page_id;
    
$userdata['session_start'] = $current_time;
    
$userdata['session_time'] = $current_time;
    
$userdata['session_admin'] = 0;
    
$userdata['session_key']='';
    
$SID 'sid=' $session_id;
    
define('TEMP_SESSION',true);
    return 
$userdata;
}
function 
rss_session_end()
{
    global 
$db$userdata;
    
$session_id=$userdata['session_id'];
    
$user_id=$userdata['user_id'];
    
$sql 'DELETE FROM ' SESSIONS_TABLE "
        WHERE session_id = '
$session_id'
        AND session_user_id = 
$user_id";
    if ( !
$db->sql_query($sql) )
    {
        
ExitWithHeader("500 Internal Server Error","Error delete session");
    }
}
function 
rss_get_user()
{
    global 
$db$HTTP_SERVER_VARS$HTTP_GET_VARS;
    if((!isset(
$HTTP_SERVER_VARS['PHP_AUTH_USER']) || !isset($HTTP_SERVER_VARS['PHP_AUTH_PW']))
        && isset(
$HTTP_SERVER_VARS['REMOTE_USER']) && preg_match('/Basics+(.*)$/i'$HTTP_SERVER_VARS['REMOTE_USER'], $matches)) {
        list(
$name$password) = explode(':'base64_decode($matches[1]), 2);
        
$HTTP_SERVER_VARS['PHP_AUTH_USER'] = strip_tags($name);
        
$HTTP_SERVER_VARS['PHP_AUTH_PW']    = strip_tags($password);
    }
    if (isset(
$HTTP_SERVER_VARS['PHP_AUTH_USER']) && isset($HTTP_SERVER_VARS['PHP_AUTH_PW'])) {
        
$username=phpbb_clean_username($HTTP_SERVER_VARS['PHP_AUTH_USER']);
        
$password=md5($HTTP_SERVER_VARS['PHP_AUTH_PW']);
        if(isset(
$HTTP_GET_VARS['uid'])){
            
$uid=intval($HTTP_GET_VARS['uid']);
            
$sql "SELECT * FROM " USERS_TABLE " WHERE user_id = $uid";
        }
        else
            
$sql "SELECT user_id, username, user_password, user_active, user_level
            FROM " 
USERS_TABLE "
            WHERE username = '" 
str_replace("\'""''"$username) . "'";

        if ( !(
$result $db->sql_query($sql)) )
        {
            
message_die(GENERAL_ERROR'Error in obtaining userdata'''__LINE____FILE__$sql);
        }
        if( 
$row $db->sql_fetchrow($result) )
        {
         if( 
$password == $row['user_password'] && $row['user_active'] )
         {
          
// Yes!!!  It's good user
            
return $row['user_id'];
         }
         else 
GetHTTPPasswd();
    }
    }
    else 
GetHTTPPasswd();
    return 
ANONYMOUS;
}
?>
Онлайн: 1
Реклама