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

Reply
 
Thread Tools Display Modes
  #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
  #2  
Old 04-04-2011, 05:28 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Interesting results of your tests. I'm not one of the vB developers of course, so I can't say why things are that way, but I suspect fixing all those wouldn't make a lot of difference in speed since there aren't a lot of loops like that and other things take a lot longer.

BTW, E_ALL & E_NOTICE actually turns off all error reporting except E_NOTICE, so I think you'd just want E_ALL.
Reply With Quote
  #3  
Old 04-04-2011, 05:36 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Was there a point to this.
Reply With Quote
Reply


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 06:17 AM.


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.04836 seconds
  • Memory Usage 2,199KB
  • Queries Executed 13 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (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
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (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_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
  • 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