PDA

View Full Version : PHP problem in class_bootstrap.php


SnakeEaterITA
06-02-2017, 07:06 PM
Hi everyone,

I recently updated to 4.2.5 and I started getting tons of PHP error messages:

[02-Jun-2017 22:16:04 Europe/Rome] PHP Strict Standards: Only variables should be passed by reference in /home/laplayst/public_html/forum/includes/class_bootstrap.php(564) : eval()'d code on line 60
[02-Jun-2017 22:16:04 Europe/Rome] PHP Strict Standards: Only variables should be passed by reference in /home/laplayst/public_html/forum/includes/class_bootstrap.php(564) : eval()'d code on line 60
[02-Jun-2017 22:16:14 Europe/Rome] PHP Strict Standards: Only variables should be passed by reference in /home/laplayst/public_html/forum/includes/class_bootstrap.php(564) : eval()'d code on line 60
[02-Jun-2017 22:16:14 Europe/Rome] PHP Strict Standards: Only variables should be passed by reference in /home/laplayst/public_html/forum/includes/class_bootstrap.php(564) : eval()'d code on line 60
[02-Jun-2017 22:16:14 Europe/Rome] PHP Strict Standards: Only variables should be passed by reference in /home/laplayst/public_html/forum/includes/class_bootstrap.php(564) : eval()'d code on line 60
[02-Jun-2017 22:16:14 Europe/Rome] PHP Strict Standards: Only variables should be passed by reference in /home/laplayst/public_html/forum/includes/class_bootstrap.php(564) : eval()'d code on line 60
[02-Jun-2017 22:16:14 Europe/Rome] PHP Strict Standards: Only variables should be passed by reference in /home/laplayst/public_html/forum/includes/class_bootstrap.php(564) : eval()'d code on line 60

Line 564 is

($hook = vBulletinHook::fetch_hook('process_templates_compl ete')) ? eval($hook) : false;

Line 60 is an empty one under

public $group_templates = array();


Do you have any idea how I could solve this problem?

Dave
06-02-2017, 07:25 PM
It means that one of your plugins that is hooked into process_templates_complete has this problem on line 60 (in the hook).
My guess is that there's a declaration using =& somewhere, removing the ampersand sign should fix it.

SnakeEaterITA
06-02-2017, 07:33 PM
wow thanks for the quick reply, really appreciated!

Does it mean I'd have to go through my plugins one by one, and check all of them at line 60?

If I am not wrong =& is basically a pointer? But wouldn't changing it to = change the way data is handled ?

Dave
06-02-2017, 07:40 PM
Go to your AdminCP > Plugins & Products > Plugin Manager > CTRL + F and search for process_templates_complete hooks.

For each match found click on edit and look around line 60 for =& or some function that makes use of old standards. Feel free to paste line 58-62 here so we can take a look.

Changing it to =& shouldn't deal any damage, vBulletin changed all =& to = in the latest vBulletin version if I recall correctly in order to support PHP 7.

SnakeEaterITA
06-02-2017, 07:54 PM
There is only one plugin that has many lines of code (the others just have just a couple)

And this is the one

Starting on line 56

if($uidx[$titulo] != ""){
$usergroup = $uidx[$titulo];

if (is_member_of($vbulletin->userinfo, $usergroup)){

global $template_hook;
$templater->register('target',$target);
$templater->register('url',$url);
$templater->register('selectedtabs',$selectedtabs);
$templater->register('subnavlinks',$subnavlinks);
$templater->register('filename', $filename);
$template_hook[$vbulletin->options['vbhtabslcr']] .= $templater->render();
}
}else{


$templater->register('target',$target);
$templater->register('url',$url);
$templater->register('selectedtabs',$selectedtabs);
$templater->register('subnavlinks',$subnavlinks);
$templater->register('filename', $filename);
$template_hook[$vbulletin->options['vbhtabslcr']] .= $templater->render();
}
}

Dave
06-02-2017, 08:00 PM
I don't see anything wrong but you can try disabling the plugin which uses this hook and see if that fixes it. That way we can be certain it's this hook.

Lynne
06-02-2017, 09:00 PM
When the hooks are stored in the database, ALL the hooks using the process_templates_complete location are stored 'on top of each other' (one after another). If one is only 10 lines, then the next is 70 lines, then line "60" or the error could be line 60 of the second plugin if it was stored first OR line 50 of the second plugin if it was stored second. So, you actually need to look at all the plugins using that hook location to find the problem one.