![]() |
Simple vB User login and access control on non vB pages
Hack Description
This is a cutdown version of the user authentication and access control system I use on the non vB pages on my website. This uses the vB 3.5 login system to log you in and out. It allows you to move between your forums and other pages on your site while remaining logged in. It allows you to do things such as restrict pages by usergroup, display different content depending on a user being logged in or not. For example, you can have banner Adds displying to non members only, and/or let members access to specific content. Ive cut it down to the bare minimum that it needs to work, no fancy stuff such as avatars, PM's, or even formating. I will try and offer support, but work and family commitments mean I dont have much free time. This code is a mix of my own, and pieces I have used from other hacks that are floating around. This script has been confirmed as working on
Changelog Version 1.30 (24th April 2007)
Version 1.20 (2nd December 2006)
Version 1.10 (4th Feb 2006)
There is no functionality changes or bug fixes between these 2 releases. Version 1.0 (17th November 2005)
Deluxe Version of this hack is now available Has Avatars, PM's, Number of Posts etc. Click Here Click on Install If you have this script installed then please click on the install link because;
Donations First of all, to be clear. This script is 100% free. However if you feel an urge to donate I'm not going to say no. :) Donations can be made at http://www.billspaintball.com/vb3/bd_donate.php |
Edit: This usage and trouble shooting guide has been updated as of 24th of April 2007
Usage The hack is pretty useless without some usage instructions so here they are. We can use conditionals to hide or display depending on a number of things such as Logged in or out status, or restrict to members of a specific usergroup. We do this by using conditionals in php tags where the normal content of a webpage would go. If you want something only accessable to a certain usergroup, use this code in your webpage. This example is only visible to members of usergroup 6. PHP Code:
For example, PHP Code:
For example: PHP Code:
Another use is to display different content to users depending on if they are logged in or not. For example PHP Code:
For example PHP Code:
Troubleshooting If your reading this chances are you are having problems. Here are some common causes and fixes.
|
Thanks, I'll test it out!
|
I know this is proabably a dumb question, but I am not technical. Does the basic web page have to be set up as a .php page or can this be used in an html page?
|
Quote:
You can of course have HTML and PHP mixed on the same .php page, PHP is only parsed if its inside the <?php ?> tags. Outside of these, normal HTML will work as normal. |
Great work!
|
Great work, thanks you.
|
hmmm why do i get
Warning: chdir(): No such file or directory (errno 2) in /home/site/public_html/site/index.php on line 2 i've entered the path to the forums, full url and just /forums/ but still same error |
Quote:
Thats the same error message I get if I change the path to my forums so that its incorrect. Double check the path to your forums. Edited again: I've added information to the opening post on how to find the correct path to your forums. |
ok after i login it brings me back to the login page with the form. isn't it supposed to recognize you're logged in?
|
Yes it is supposed to recognise when your logged in or out.
See these 2 pics to see what it should show when you are logged in or out. I would suspect it may be a cookie / cached files / browser security issue. In you browser settings, try deleting temp internet files and cookies. |
i think it's because i use my domain for my site, and a sub domain for my forums, that's the feedback everyone keeps telling me, any way around this problem? besides and iframe.
|
got a little java-error in there... any ideas? script runs fine so there is missing a "(" on line 9 (read via right-mouse-click) while showing login-form... yellow sign left bottom... error... page shows up correctly but an java-error occured in the background...
|
Quote:
Im not sure if they ever found a solution, but I will look. |
Quote:
Code:
RemoveHandler .html .htm |
Quote:
|
Quote:
Anyone else getting it? |
thx. i will try to do the whole thing again, perhaps i crushed some code, as i changed the paths.....
|
I am getting the error
Line: 469 Char: 1 Error: Expected '(' Code: 0 And I think I narrowed it down to this line: Code:
<input name=vb_login_username type=text id=navbar_username onfocus=if (this.value == '$vbphrase[username]') this.value = ''; size=10 /> onfocus=if (this.value == '$vbphrase[username]') this.value = ''; Does anyone know what that does? |
Well, I have removed the line, and no problems. I would like to know what it does though.
|
Quote:
I think that there is something else on your page, that in combination with the script produces that error. |
Note for people having problems with Paths.
Put the following code on a page all by its self. Name the page something like findpath.php and place in your forums root directory. browse to the page and it will display the exact path to your forums root. PHP Code:
|
Quote:
I think I'm having path problems. Can you post up a little tutorial on directorys and the chdir command? I can get the page to load without any errors but it never shows me as "logged in". It always presents the login prompts as if I'm not logged in. If I use the prompts to login, the vB welcome screen briefly displays then shows the login prompts again. |
1st, in the file login_inc.php ensure that you have changed the 4 paths so that "www.yoursite.com" refers to your domain.
Then on the page you want to include the login use this code: Code:
Hope this helps. |
Quote:
The login_inc.php is located in '/home/racett56/public_html'. The forums are located in '/home/racett56/public_html/forums'. I changed everything to what you suggested and I still get the same thing as before. The login prompts appear at the top of the screen when accessing the .php file. If I fill in the prompts and hit 'Log in', the vBulletin welcome screen appears for a second or two. Then it takes me back to the exact same screen with the login prompts at the top. It seems like this $vbulletin->userinfo['userid']!=0 is false even after I login. BTW... thanks for the fast response! |
If I move the access controled file to the forums directory, it works fine. What do I need to change to get it to work from another directory?
|
Quote:
AdminCP -> vBulletin Options -> Cookies and HTTP Header Options -> Path to Save Cookies I changed the 'Suggested Settings' dropdown from '/forums/' to '/' |
I keep getting
Unable to add cookies, header already sent. File: /home/shadowl/public_html/v3/index.php Line: 17 I've tried clearing cookies, cache etc, nothing changed, any ideas? |
You need to remove all lines or spaces before these block of code.
It must go at the very top of the page. PHP Code:
|
Thanks alot! That fixed it, but how do I display the form wherever I want on the page? It's now above the banner :S
EDIT: Nvm got it |
Thank you thank you thank you! This mod was exactly what I was looking for!
Quote:
|
Quote:
Your right. Login_inc.php is the actual login box and should be placed on the page where you want the box, not in the header. Ive been going to revise it with a simpler version (only one line to edit in the include so I will change the instructions then as well. |
Quote:
Does it actually work across domains? I tried to implement it on my site www.sw-eaw.de in order to restrict users which are not registered on the forums on www.cncforen.de from commenting news and using the shoutbox. So I made a test with a simple php which only calls the include_inc.php. After editing the vB Setting for the referer white list I was able to send POST data from one to the other domain. And after filling in my login details the script redirects me to my forum homepage. (I assume I will have to edit login.php around line 120 (redirect) and ask for the referer before redirect is called so I can switch between forum login and site login redirect?) When I call my loginscript again it will keep on telling me I'm not logged in and presents the login form. Any ideas? |
It is due to some new security precautions added in vBulletin to prevent POST requests from other domain names from being sent to your forums.
Ive only seen this fix elsewhere and havent tried it out myself yet. Let me know if it works so I can add it to the instructions. Open your /forum/login.php file and look for this code: Code:
error_reporting(E_ALL & ~E_NOTICE); Code:
define('SKIP_REFERRER_CHECK', true); |
Thx for the answer... ;)
...but the problem is vice versa.... I can actually send POST data to vBulletin. Here's what's happening when i call the modification from sw-eaw.de: The form appars and after I click 'Login' it redirects me to the forum and I'm logged in. But calling the .php again (on sw-eaw.de) will show the form instead of stating that I'm now logged in. Directory structure on the server is like this: /var/www/[domainname]/ and there's the document root for apache for each domain. |
Try this fix from here:
https://vborg.vbsupport.ru/showpost....1&postcount=27 Quote:
|
Quote:
So I would need to set the cookie path to a directory above which then would be /www - and that's not a part the Apache can work in.... |
I got a problem i did what you said in the instructions.txt file right and what happens is when i check my file and it only shows at the top so do i put the code below to where i want it on the page or will i use the code from login_inc.php in the page?
PHP Code:
|
For all those with the problem i had(not sure if posted up in here) but remove the line that points to login_inc.php and then paste your login_inc.php code into the pages. Only have one problem. I hit logout and it doesnt log out
I have a CSS Document for the login box but how would i use it for the login boxes with this code? EDIT Another Problem: I tried to see if it would work if i deleted cookies but i try logging in it logs me in but it shows the login box so im sorta back where i started. My Problems helping for support Doesnt log me out when i hit logout When delete cookies it logs me in on forums but doesnt say welcome back nrlleague. CSS Form Change |
Yeah if you do it like that you will have problems logging out because the headers have already been sent.
Ive done something wrong when I cut my login down to this simple version, I will have to look at my code and see where that is. That may not be for a day or two though. Edit: Doh!! Nothing very wrong with this, I just included whitespace by mistake. :cross-eyed: |
All times are GMT. The time now is 06:06 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 | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|