Register Members List Search Today's Posts Mark Forums Read

Reply
 
Thread Tools
  #1  
Old 26 Jul 2014, 20:02
Dax IX Dax IX is offline
 
Join Date: Jul 2005
Real name: Emily
Custom Page: Permission based on age?

Please forgive me, I'm very new to PHP and vB programming.

For a custom page I'm creating, I'm trying to create access permissions based on a user's age.

For a function that I've placed in an external functions_*.php file, I've done what I *think* calculates the logged in user's age, but now I'm not so sure, because my access permissions aren't working. I've borrowed code from memberlist.php to calculate the user's age and return either their age or false.


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Then, after including the function file, to try to calculate permissions based on the calculate_age() function, I used this:


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

But, no matter what I do, I don't have permission to view this page's content.

Would anyone mind giving me some pointers as to where I'm going wrong?

Thanks!
__________________
Just a placeholder.

Last edited by Dax IX; 26 Jul 2014 at 20:14.
Reply With Quote
  #2  
Old 26 Jul 2014, 20:17
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
If I'm following this correctly, I think the condition should be:


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


I'm assuming that if age isn't set or it's set to nbsp that the user won't have permission.
Reply With Quote
  #3  
Old 26 Jul 2014, 21:00
Dax IX Dax IX is offline
 
Join Date: Jul 2005
Real name: Emily
Thank you.

I think that helped, but I'm still not getting the results I'm looking for.

I'm pretty sure I've translated something in my function code wrong, but I just can't see where.

This is now my function:

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Here's what I have now for my permissions statement:

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

__________________
Just a placeholder.
Reply With Quote
  #4  
Old 26 Jul 2014, 22:21
Scanu's Avatar
Scanu Scanu is offline
 
Join Date: Nov 2010
There are easier functions to calculate age from birthday, give a look here: http://stackoverflow.com/questions/3...-calculate-age
Reply With Quote
  #5  
Old 26 Jul 2014, 22:39
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
Originally Posted by Dax IX View Post
Here's what I have now for my permissions statement:

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.
It seems like that should be AND. Like if they're not an admin or moderator and they are younger than 18, then no permission.
Reply With Quote
  #6  
Old 26 Jul 2014, 23:05
tbworld tbworld is offline
 
Join Date: Oct 2008
The problem you are having is the user condition $userinfo['showbirthday'], which alters when $age is valid in the vbulletin code. In reality all you need to check is if $userinfo['birthday'] is valid.

Using @Scanu suggestion, this is all you need -- although, that code needs to be fully vetted. I believe $userinfo['birthday'] should be properly validated from vBulletin. I would re-validate it if you run many modifications, that might tamper with it.


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


Last edited by tbworld; 26 Jul 2014 at 23:31.
Reply With Quote
  #7  
Old 26 Jul 2014, 23:26
Dax IX Dax IX is offline
 
Join Date: Jul 2005
Real name: Emily
Thanks everyone for their help!

I have it working MUCH more simply now, thanks to suggestions here.

Yes, ordinarily it would be AND, but in this case, while I'm testing some things, it's OR.

Age will be a big factor in what I'm working on, used on several pages, therefore I wanted to do it as a function, which I now have.


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

And I have my permissions code:

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Thanks again, all!

The only thing I'm confused about now is why I can't seem to use $userinfo['birthday'] instead of $vbulletin->userinfo['birthday'] in my function file.

If it's not to much to ask, what is the explanation of that?

--------------- Added 27 Jul 2014 at 15:22 ---------------

Stupid question. I just figured it out.

--------------- Added 27 Jul 2014 at 15:57 ---------------

Even better age code, borrowed from class_userprofile.php and modified to fit:


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

__________________
Just a placeholder.

Last edited by Dax IX; 27 Jul 2014 at 20:59.
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

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


New To Site? Need Help?

All times are GMT. The time now is 03:35.

Layout Options | Width: Wide Color: