Skip to:
Content
Pages
Categories
Search
Top
Bottom

bbPress Session Variable Names

  • @purus

    Member

    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)
  • @sambauers

    Participant

    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.

    @purus

    Member

    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?

    @purus

    Member

    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?

    @purus

    Member

    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

    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.

    @purus

    Member

    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?

    @purus

    Member

    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…

    @rmccue

    Participant

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

    @purus

    Member

    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 :)

    @purus

    Member

    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

    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.

    @sambauers

    Participant

    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

    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)

    @purus

    Member

    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.
Skip to toolbar