Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 07-26-2014, 07:02 PM
Dax IX Dax IX is offline
 
Join Date: Jul 2005
Posts: 153
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default 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.

PHP Code:
function calculate_age($userinfo)
{
    
    global 
$vbulletin;
    
    if (!isset(
$userinfo['birthday']))
    {
        return 
false;        
    } else {
        
        
$today_year vbdate('Y'TIMENOWfalsefalse);
        
$today_month vbdate('n'TIMENOWfalsefalse);
        
$today_day vbdate('j'TIMENOWfalsefalse);

        
$bday explode('-'$userinfo['birthday']);
        
        if (
date('Y') > $bday[2] AND $bday[2] > 1901 AND $bday[2] != '0000')
        {
            if (
$today_year $bday[2] AND $bday[2] != '0000')
            {
                
$userinfo['age'] = $today_year $bday[2];
                if (
$bday[0] > $today_month)
                {
                    
$userinfo['age']--;
                }
                else if (
$bday[0] == $today_month AND $today_day $bday[1])
                {
                    
$userinfo['age']--;
                }
            }
            else
            {
                return 
false;
            }
            
            if (!
$userinfo['age'] AND ($userinfo['age'] < 18))
            {
                return 
false;
            } else {
                return 
$userinfo['age'];
            }
        } else {
            return 
false;
        }
    }

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

PHP Code:
$age calculate_age($userinfo);

// access permissions
if ((!is_member_of($vbulletin->userinfo567)) OR ((!isset($age)) AND ($age != '$nbsp;')) OR ($age 18))  
{
// give no permission unless in usergroup x, y, or z
        
print_no_permission();

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!
Reply With Quote
 


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

Forum Jump


All times are GMT. The time now is 07:21 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
  • Page Generation 0.05329 seconds
  • Memory Usage 2,570KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (9)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (7)postbit_onlinestatus
  • (7)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete