vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Is this possible? (https://vborg.vbsupport.ru/showthread.php?t=93548)

10sion 08-03-2005 08:03 PM

Is this possible?
 
My site is on endless-anime.com and my forums is on ea-forums.com. I want my site to kinda be intergrated into the forums. But I need to tell if the users logged in, I already have the forums memberlist on my site but now I need to be able to be where you log in the forums it sets a cookie on both ea-forums.com (which it does) and endless-anime.com. Im not sure if setcookie can even do this, but I want to try, anyways I finally found vbsetcookie function and made some edits, although they dont seem to be setting the cookies on endless-anime.com anyone help?

Code:

// ###################### Start vbsetcookie #######################
function vbsetcookie($name, $value = '', $permanent = 1)
{
        global $vboptions, $_SERVER;

        if ($permanent)
        {
                $expire = TIMENOW + 60 * 60 * 24 * 365;
        }
        else
        {
                $expire = 0;
        }

        if ($_SERVER['SERVER_PORT'] == '443')
        {
                // we're using SSL
                $secure = 1;
        }
        else
        {
                $secure = 0;
        }

        $name = COOKIE_PREFIX . $name;

        $filename = 'N/A';
        $linenum = 0;

        if (!vbheaders_sent($filename, $linenum))
        { // consider showing an error message if there not sent using above variables?
                if ($value == '' AND strlen($vboptions['cookiepath']) > 1 AND strpos($vboptions['cookiepath'], '/') !== false)
                {
                        // this will attempt to unset the cookie at each directory up the path.
                        // ie, cookiepath = /test/vb3/. These will be unset: /, /test, /test/, /test/vb3, /test/vb3/
                        // This should hopefully prevent cookie conflicts when the cookie path is changed.
                        $dirarray = explode('/', preg_replace('#/+$#', '', $vboptions['cookiepath']));
                        $alldirs = '';
                        foreach ($dirarray AS $thisdir)
                        {
                                $alldirs .= "$thisdir";
                                if (!empty($thisdir))
                                { // try unsetting without the / at the end
                                        setcookie($name, $value, $expire, $alldirs, $vboptions['cookiedomain'], $secure);
                                        setcookie($name, $value, $expire, '', 'www.endless-anime.com', $secure);
                                }
                                $alldirs .= "/";
                                setcookie($name, $value, $expire, $alldirs, $vboptions['cookiedomain'], $secure);
                                setcookie($name, $value, $expire, '', 'www.endless-anime.com', $secure);
                        }
                }
                else
                {
                        setcookie($name, $value, $expire, $vboptions['cookiepath'], $vboptions['cookiedomain'], $secure);
                        setcookie($name, $value, $expire, '', 'www.endless-anime.com', $secure);
                }
        }
        else if (!DB_QUERIES)
        { //show some sort of error message
                global $templateassoc, $DB_site;
                if (empty($templateassoc))
                {
                        // this is being called before templates have been cached, so just get the default one
                        $template = $DB_site->query_first("
                                SELECT templateid
                                FROM " . TABLE_PREFIX . "template
                                WHERE title = 'STANDARD_ERROR' AND styleid = -1
                        ");
                        $templateassoc = array('STANDARD_ERROR' => $template['templateid']);
                }
                eval(print_standard_error('cant_set_cookies'));
        }
}

and the only part I really edited:

Code:

                        foreach ($dirarray AS $thisdir)
                        {
                                $alldirs .= "$thisdir";
                                if (!empty($thisdir))
                                { // try unsetting without the / at the end
                                        setcookie($name, $value, $expire, $alldirs, $vboptions['cookiedomain'], $secure);
                                        setcookie($name, $value, $expire, '', 'www.endless-anime.com', $secure);
                                }
                                $alldirs .= "/";
                                setcookie($name, $value, $expire, $alldirs, $vboptions['cookiedomain'], $secure);
                                setcookie($name, $value, $expire, '', 'www.endless-anime.com', $secure);
                        }
                }
                else
                {
                        setcookie($name, $value, $expire, $vboptions['cookiepath'], $vboptions['cookiedomain'], $secure);
                        setcookie($name, $value, $expire, '', 'www.endless-anime.com', $secure);
                }


Marco van Herwaarden 08-03-2005 08:52 PM

You can not set cookies across domains.

10sion 08-03-2005 08:57 PM

Any other ideas I could find out if theyre logged in the forums across the 2 domains and get there username/password?

I think I thought of a way but I dont know how to make it come together. I make a file on endless-anime.com named setcookie.php and make it get to http vars, ?userid=&pass= and then that file gets the values and sets a cookie for it. Somehow I need to include that file in the vbsetcookie function, maybe by printing out an iframe tag with its source being the file, any ideas?

Jako 08-04-2005 02:12 AM

I'm pretty sure yo ucan do this by requiring the global.php file located in your forums on your main site. From there with a little coding you can check to see if they are logged in or not by checking for their username. I did this for my site recently and have it working great. If they are logged in it says welcome, $username if not it says they are not logged in and are required to do so in a login box or register first.

10sion 08-04-2005 02:57 AM

umm I dont think you understood what Im trying to do... the login on the forums works fine but im trying to make it so when you login on the forums it sets a cookie on the site (a diffrent domain than the forum) thereby logging you in on the site where I can interact with the database.


All times are GMT. The time now is 05:51 AM.

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.01018 seconds
  • Memory Usage 1,735KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete