Skip to:
Content
Pages
Categories
Search
Top
Bottom

bbPress Session Variable Names

  • I would like to be able to check a user’s login status without using the bbPress functions. Normally I would use a simple isset($_SESSION) check. What are the names of the variables that bbPress sets to indicate that a user is logged in?

    Thanks.

Viewing 14 replies - 1 through 14 (of 14 total)

  • Sam Bauers
    Participant

    @sambauers

    bbPress uses encrypted cookies, you’ll need to give us a little more information on what you are trying to do if we are to help you.

    Hmm… I’m just trying to verify login on a page on the same site that is not part of the bbPress install. I’d like to be able to use the bbPress user system for the entire site if that is possible.

    If sessions are the way to go, perhaps I could just include a couple of the function files. Which ones would be necessary to include to enable the is_user_logged_in() function?

    Just to clarify, my site is at mysite.com. I’ve got bbPress installed at mysite.com/forums. I’d like to be able to enforce login using the bbPress user system at mysite.com/blah.php, but blah.php isn’t part of the bbPress install so the bbPress functions aren’t available to it. How do I go about enforcing login on a non-bbPress page?

    Oh, and by the way, is there a way to return the current user’s username and ID if one is logged in?


    _ck_
    Participant

    @_ck_

    Without going through the bbpress functions or mimicing the login authentication system (look in pluggable.php) you could never tell if a user is actually logged in, or being spoofed.

    However the bbpress/wp cookie will persist and if the cookie path is set to the website root (instead of locked to “/forums/” – you’d have to change the default cookiepath) you could read the cookie and see if the visitor has a bbpress username. But if several people used the same computer there possibly could be several cookies.

    In theory you could force sessions to always be on via a plugin for bbpress and watch it that way too. But note that sessions slow down server performance if it’s an active site.

    Best bet is to change the cookiepath and decode the cookie with a smaller subset of code.

    It sounds like just including the bbPress function files and using those functions would be the easiest. I couldn’t figure out which files needed to be included for the login functions to work though.

    I tried doing if (bb_is_user_logged_in()), which required /bb-includes/pluggable.php and /bb-includes/functions.php, but after I included both those files I was left with the following error:

    Fatal error: Call to a member function get_row() on a non-object in /bb-includes/functions.php on line 1228

    Am I missing some other file, or is it just not possible to use this function outside of the actual bbPress build?

    By the way, assuming I can get these functions to run, what would be the function for getting the current users’s id?

    I got lost somewhere in bb_get_current_user() and bb_get_user() without really being able to figure out what returns what. If I can get them running though, then I can test them, so I should be able to figure it out…


    Ryan McCue
    Participant

    @rmccue

    Try requiring bb-load.php and going from there.

    Thank you rmccue! bb-load.php was the only file required to make those functions work. I guess that was the source of the chain of includes. Thanks a bunch :)

    OK, I take that back. Requiring bb-load.php definitely fixed all the errors, but the functions still aren’t working. They don’t throw an error, but they don’t return anything either and so are pretty much worthless.

    Is it perhaps because the files I am trying to use them in are in the parent directory above the bbPress installation?

    There must be some way to get access to the bbPress login info directly through PHP…


    _ck_
    Participant

    @_ck_

    bb-load essentially loads the entire bbpress framework

    It just doesn’t generate any template output

    It’s how RSS feeds, etc. are done

    You can indeed evaluate the user login via loading the entire framework. But you can also write a very small subset of code to check the cookie and then read the database directly too.

    However note that if your bbpress cookies are locked to a path (ie. /forums/) as they are by default, they will not be valid outside of the path and no user will be detected. So you have to change the cookiepath in config.php

    Otherwise neither method will work.


    Sam Bauers
    Participant

    @sambauers

    If your site is at:

    http://www.example.com/

    And bbPress is at:

    http://www.example.com/forums/

    Then you will need to add this line to your config.php file…

    $bb->cookiepath = ‘/’;

    That way your code in the base directory that is trying to read the cookies will be able to do so.


    _ck_
    Participant

    @_ck_

    Sam, I noticed that may have changed in/after 0.8.3.1

    After some tinkering I also had to add:

    $bb->sitecookiepath = '/';

    (there is also a related minor issue in that I can’t seem to affect the cookie domain to be undotted in the newest builds)

    Fantastic! That worked perfectly. Thanks so much guys.

Viewing 14 replies - 1 through 14 (of 14 total)

You must be logged in to reply to this topic.