Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #11  
Old 04-04-2006, 11:44 PM
Freesteyelz's Avatar
Freesteyelz Freesteyelz is offline
 
Join Date: Jan 2006
Posts: 1,552
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If you've set the cookies to point at "/domain.com" then a central login is workable. I've taken and modified bits of code to make things work but as merk mentioned I found using ./global.php is very convenient. I haven't noticed a significant performance hit; my members as well except when the server glitches but that's an entirely different issue.
Reply With Quote
  #12  
Old 04-06-2006, 11:36 PM
ConKien ConKien is offline
 
Join Date: Apr 2004
Posts: 92
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Freesteyelz
If you've set the cookies to point at "/domain.com" then a central login is workable. I've taken and modified bits of code to make things work but as merk mentioned I found using ./global.php is very convenient. I haven't noticed a significant performance hit; my members as well except when the server glitches but that's an entirely different issue.

I tried to include .global.php of to integrate with other application, some work ok, some conflict with the cookies of the applications itself. It's always good if you could use the global.php file, but it doesn't work everytime.
Reply With Quote
  #13  
Old 05-16-2006, 06:49 PM
hidjra hidjra is offline
 
Join Date: Jan 2002
Location: Amsterdam
Posts: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i wrote this code to do exactly what i stated above. I'm just not sure this is the best way for doing this. Could some one have a look at this?

PHP Code:
// copied from vb3.5 gold
function fetch_alt_ip()
    {
        if (isset(
$_SERVER['HTTP_CLIENT_IP']))
        {
            
$alt_ip $_SERVER['HTTP_CLIENT_IP'];
        }
        else if (isset(
$_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s'$_SERVER['HTTP_X_FORWARDED_FOR'], $matches))
        {
            
// make sure we dont pick up an internal IP defined by RFC1918
            
foreach ($matches[0] AS $ip)
            {
                if (!
preg_match("#^(10|172\.16|192\.168)\.#"$ip))
                {
                    
$alt_ip $ip;
                    break;
                }
            }
        }
        else if (isset(
$_SERVER['HTTP_FROM']))
        {
            
$alt_ip $_SERVER['HTTP_FROM'];
        }
        else
        {
            
$alt_ip $_SERVER['REMOTE_ADDR'];
        }

        return 
$alt_ip;
    }

// define vars
define('COOKIE_SALT''blablablabla');
$alt_ip fetch_alt_ip();
define('ALT_IP'$alt_ip);
define('IPADDRESS'$_SERVER['REMOTE_ADDR']);


if(
$_COOKIE['bbsessionhash']){
  
//check if cookie exists
  
$sessionhash $_COOKIE['bbsessionhash'];
}elseif(
$_REQUEST['s']){
  
// check session in request
  
$sessionhash $_REQUEST['s'];
}else{
  
// no cookie and no session, use vb engine en redirect
  
chdir('/xx/xx/xxx/forums');
  require(
'./global.php');
  
header("Location: " .str_replace('.php''.php' .$vbulletin->session->vars['sessionurl_q']. '&'$_SERVER['PHP_SELF']));
}

define('SESSION_IDHASH'md5($_SERVER['HTTP_USER_AGENT'] . ALT_IP ));
define('SESSION_HOST'substr(IPADDRESS015)); 
define('USER_AGENT'$_SERVER['HTTP_USER_AGENT']);

$cookietime intval(time() - 900);
$sessie $DB_site->query_first("SELECT * FROM session WHERE sessionhash = '$sessionhash' AND lastactivity > '$cookietime' AND host = '" .SESSION_HOST"' AND idhash = '" .SESSION_IDHASH"' AND useragent='" .USER_AGENT"'");

if((
$_COOKIE['bbuserid']) AND ($_COOKIE['bbpassword'])){
  
$getuser $DB_site->query("SELECT * FROM user WHERE userid = '$_COOKIE[bbuserid]'");
  
$user $DB_site->fetch_array($getuser);
  if(
$_COOKIE['bbpassword'] == md5($user['password'] . COOKIE_SALT)){
    
$user['logouthash'] = md5($user['userid'] . $user['salt'] . COOKIE_SALT);
    
$bbuserinfo $user;
  }
}elseif(
$sessie['userid']){
  
$getuser $DB_site->query("SELECT * FROM user WHERE userid = '$sessie[userid]'");
  
$user $DB_site->fetch_array($getuser);
  
$user['logouthash'] = md5($user['userid'] . $user['salt'] . COOKIE_SALT);
  
$bbuserinfo $user;
}

$DB_site->query("UPDATE session SET lastactivity = '" .time(). "' WHERE sessionhash = '$sessionhash'");
if(
$bbuserinfo['userid']>0){
  
$DB_site->query("UPDATE user SET lastactivity = '" .time(). "' WHERE userid = '$bbuserinfo[userid]'");

Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:01 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05876 seconds
  • Memory Usage 2,227KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete