Results 1 to 5 of 5

Thread: about session variable naming

  1. #1
    Join Date
    Mar 2011

    about session variable naming

    I just discovered that doing this
    $_SESSION['var1'] = null;
    $var1 = 'something';
    will throw this warning
    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0
    Why is there any a priori relationship between $_SESSION['var'] and $var???
    What really sucks is that I developed a decent-sized website that uses extensive use of this kind of thing. My local configuration wasn't giving the warning, but the live webserver is.

    At the link below
    it says to do this
    ini_set('session.bug_compat_warn', 0);
    ini_set('session.bug_compat_42', 0);
    Is this the only way around it aside from renaming my $var 's ? But do I have to do this on every single page that I made this naming violation? Is there another way to remove this warning. Is the warning serious?

    Is this just as bad, or worse
    $var = $_SESSION['var'];
    ??? I do it all the time for convenience later in the script. Bummer.

  2. #2
    Join Date
    Aug 2004
    Not sure if that's a holdover from the bad old days of register_globals or not?

    In any case, it shouldn't be a problem, but on the other hand, why assign a $_SESSION variable to another variable, when you already have it in the $_SESSION array? (Just to save a little typing later?) Or I suppose you could change the case or add an underscore or something:
    PHP Code:
    $var_1 $_SESSION['var1']; 
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  3. #3
    Join Date
    May 2012
    I think it's related to older versions of PHP. If you can upgrade to the latest 5.3 version, I would. If only for security reasons.

    To get around the error without upgrading PHP, and without using the ini_set directive in every PHP file, you can set the options in a custom php.ini, or in your .htaccess, depending on how PHP is set up on your system.

    If you can override the default php.ini on your system, create a file php.ini and place it in your root web document folder (IE: public_html, www, or htdocs) then add the following two lines to the file:
    PHP Code:
    session.bug_compat_warn 0
    You may have to restart Apache, and/or add the path to your php.ini file ... again it depends on your server setup.

    If you don't have access to a custom php.ini file, you can add the following two lines to your .htaccess file in your root web documents folder:
    php_flag session.bug_compat_42 0
    php_flag session.bug_compat_warn 0
    Those two options can disable the warning globally, but the best solution is probably either to upgrade PHP or change the way you name your variables.

    Freelance PHP Web Developer

  4. #4
    Join Date
    Mar 2011
    Thanks for your replies. I checked into PHP version on the server and it's 5.2.17. I'm guessing that's the problem. I'm just gonna rename my variables. Cheers

  5. #5
    Join Date
    May 2012
    Quote Originally Posted by Pacopag View Post
    Thanks for your replies. I checked into PHP version on the server and it's 5.2.17. I'm guessing that's the problem. I'm just gonna rename my variables. Cheers
    You already have the variables in $_SESSION, session is a super global so it's accessable to every script. Why not just use $_SESSION itself? Would make your code easier to read!

    Kind regards,

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.13121 seconds
  • Memory Usage 2,880KB
  • Queries Executed 13 (?)
More Information
Template Usage (35):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (5)bbcode_code
  • (2)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (5)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates