Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 04-04-2011, 04:21 PM
squishi squishi is offline
 
Join Date: May 2006
Location: Frankfurt
Posts: 282
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default vbulletin's error notice problem

I recently upgraded from vbulletin 3.8.4 (Patched) to 3.8.7.
On a custom page, I turned error reporting on:
PHP Code:
error_reporting(E_ALL E_NOTICE); 
This setting used to be at "~E_NOTICE", so I never noticed the warning messages.

And there are loads of them.

I tried to fix some of the bugs, but there must be some other reason.

Take this one for example:
Quote:
Notice: Undefined index: jsver in /forum/includes/class_core.php on line 1438
class_core.php:
PHP Code:
$this->registry->options['simpleversion'] = SIMPLE_VERSION $this->registry->config['Misc']['jsver']; 
I assume this is accessing a setting that is not defined in the config.php.
I checked the config.php of a freshly downloaded vb script. The index "jsver" cannot be found in that file. So why is the script searching for it?


Out of curiosity, I turned the notices on for the forumdisplay.php and was hit with hundreds of notice messages.

Will a standard installation of vbulletin produce any notices if error_reporting is set to the appropriate value?

This is extremely shitty programming style! :down:

Most of the errors are undefined array index problems. They could be fixed very easily by not writing sloppy code.
Did you let your interns program vbulletin?

--------------- Added [DATE]1301939035[/DATE] at [TIME]1301939035[/TIME] ---------------

Maybe the developers can learn something from this small experiment:
copy this in a php file and run it:
PHP Code:
<?php

error_reporting
(0);

echo 
"TEST 1:<br />";
echo 
"notice message [if($_GET['abcdef'])]<br /><br />";

$start  microtime(true);
for(
$i 1$i 100000$i++)
{
    if(
$_GET['abcdef'])
    {
        
//
    
}
}
$end microtime(true);

echo 
"RESULT 1: ".($end $start)."<br /><br /><br />";

echo 
"TEST 2:<br />";
echo 
"@ parameter [if(@$_GET['abcdef'])]<br /><br />";

$start  microtime(true);
for(
$i 1$i 100000$i++)
{
    if(@
$_GET['abcdef'])
    {
        
//
    
}
}
$end microtime(true);

echo 
"RESULT 2: ".($end $start)."<br /><br /><br />";

echo 
"TEST 3:<br />";
echo 
"isset check [if(isset($_GET['abcdef']))]<br /><br />";

$start  microtime(true);
for(
$i 1$i 100000$i++)
{
    if(isset(
$_GET['abcdef']))
    {
        
//
    
}
}
$end microtime(true);

echo 
"RESULT 3: ".($end $start)."<br /><br /><br />";
The result:
Quote:
TEST 1:
notice message [if($_GET['abcdef'])]

RESULT 1: 0.071149826049805


TEST 2:
@ parameter [if(@$_GET['abcdef'])]

RESULT 2: 0.075546979904175


TEST 3:
isset check [if(isset($_GET['abcdef']))]

RESULT 3: 0.01532506942749
Sloppy programming does not pay off!
Reply With Quote
Reply

Thread Tools
Display Modes

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 02:31 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05480 seconds
  • Memory Usage 2,213KB
  • Queries Executed 11 (?)
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
  • (3)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)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_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