collapse collapse

* User Info

 
 
Welcome, Guest. Please login or register.
Did you miss your activation email?

* Who's Online

  • Dot Guests: 119
  • Dot Hidden: 1
  • Dot Users: 1

There aren't any users online.

* Shoutbox

Refresh History
  • Shoutbox is not for support!
  • Chen Zhen: our apologies for the site being down.. please read server issues topic
    March 22, 2018, 05:32:38 AM
  • {OCS}MasterSeal: LOL PLEASE forget I just posted that. I found the answer in my own dang post back in 2015. lol sorry!
    July 04, 2017, 10:47:55 PM
  • {OCS}MasterSeal: I know this SB isnt' for support, but I just have a general question. Who would I contact to find out where SP stores its block info? Is it DB driven or files? I searched the site but came up with nothing. probably my fault any insight is appreciated.
    July 04, 2017, 10:43:36 PM
  • ♦ Ninja ZX-10RR ♦: Excuse me but what does Simpleportal have to deal with that?
    February 05, 2017, 08:21:14 PM
  • WhiteEagle: of course IMHO that site appears to be dead :(
    February 04, 2017, 01:08:05 PM
  • WhiteEagle: If I can get that, then I'll use it for that site...
    February 04, 2017, 01:07:35 PM
  • WhiteEagle: decided to not use SMF for any projects, unless I can get a copy of the premium version of the fanfiction archive plugin
    February 04, 2017, 01:06:54 PM
  • expertdecisions: cloudflare
    January 28, 2017, 08:01:47 AM
  • aegersz: SM release 2.0.13 !
    January 12, 2017, 06:00:13 AM
  • raffo: Tks Emanuele, even if I didn't understand the fix :D
    November 07, 2016, 02:01:20 AM
  • emanuele: [link]
    November 01, 2016, 12:43:50 PM
  • emanuele: raffo: the English support board is a good place. ;)
    November 01, 2016, 12:43:38 PM
  • raffo: Where can I find the fix for the shoutbox?
    November 01, 2016, 05:06:09 AM
  • {OCS}MasterSeal: To the SP team, I make a point to come here and thank you as much as possible for your work.  so again, THANK YOU!
    October 28, 2016, 10:38:05 AM
  • emanuele: That's indeed funny, the limit is present only in the patch and not the full install.
    October 22, 2016, 06:14:58 PM
  • phantomm: and from what I see only patch is broken, full install package is fine
    October 21, 2016, 03:44:44 PM
  • phantomm: they say it for over 3 weeks now..
    October 21, 2016, 03:43:52 PM
  • aegersz: SMF say that bug fix 2.0.13 is coming soon ...
    October 19, 2016, 06:46:12 PM
  • Chen Zhen: check that thread at a later date as that file is not a final fix
    October 10, 2016, 03:09:18 PM

* Recent Posts

Re: Need Help! Newbie! by andy
[April 17, 2018, 07:21:58 AM]


Re: Need Help! Newbie! by anieB
[April 15, 2018, 08:48:21 PM]


Re: Need Help! Newbie! by Kaede Akamatsu
[April 15, 2018, 01:41:33 PM]


Need Help! Newbie! by anieB
[April 14, 2018, 03:11:12 PM]


Re: [MOD] Edit button on blocks and custom pages by Arynews
[April 09, 2018, 05:58:09 AM]

Welcome to SimplePortal.net! You can download SimplePortal from the Downloads Area!

Author Topic: PHP 7.1 : A non well formed numeric value encountered  (Read 13949 times)

0 Members and 1 Guest are viewing this topic.

Offline KathyL

  • Semi Newbie
  • *
  • Posts: 5
  • SMF Version: 2.0.11
  • SP Version: 2.3.6
PHP 7.1 : A non well formed numeric value encountered
« on: July 08, 2017, 06:27:55 AM »
Since the implementation of PHP 7.1 warnings are issued about invalid strings in arithmetic.

For SMF 2.0.14/Simple Portal 2.3.6/PHP 7.1 this has resulted in 'A non well formed numeric value encountered' error messages on my forums whenever changes to blocks are saved because of the presence of non-numeric characters (eg, '%', 'px').

The workaround I implemented in ./Sources/PortalAdminBlocks.php is as follows (ie, insert '(float)' before each width value used in the calculations to return only the numeric value):
Find
Code: [Select]
if (strpos($context['widths'][1], '%') !== false)
$context['widths'][2] = $context['widths'][3] = 100 - ($context['widths'][1] + $context['widths'][4]) . '%';
elseif (strpos($context['widths'][1], 'px') !== false)
$context['widths'][2] = $context['widths'][3] = 960 - ($context['widths'][1] + $context['widths'][4]) . 'px';

if (strpos($context['widths'][1], '%') !== false)
{
$context['widths'][2] = $context['widths'][3] = 100 - ($context['widths'][1] + $context['widths'][4]) . '%';
$context['widths'][5] = $context['widths'][6] = '100%';
}
elseif (strpos($context['widths'][1], 'px') !== false)
{
$context['widths'][2] = $context['widths'][3] = 960 - ($context['widths'][1] + $context['widths'][4]) . 'px';
$context['widths'][5] = $context['widths'][6] = '960px';
}
Replace with:
Code: [Select]
if (strpos($context['widths'][1], '%') !== false)
$context['widths'][2] = $context['widths'][3] = 100 - ((float)$context['widths'][1] + (float)$context['widths'][4]) . '%';
elseif (strpos($context['widths'][1], 'px') !== false)
$context['widths'][2] = $context['widths'][3] = 960 - ((float)$context['widths'][1] + (float)$context['widths'][4]) . 'px';

if (strpos($context['widths'][1], '%') !== false)
{
$context['widths'][2] = $context['widths'][3] = 100 - ((float)$context['widths'][1] + (float)$context['widths'][4]) . '%';
$context['widths'][5] = $context['widths'][6] = '100%';
}
elseif (strpos($context['widths'][1], 'px') !== false)
{
$context['widths'][2] = $context['widths'][3] = 960 - ((float)$context['widths'][1] + (float)$context['widths'][4]) . 'px';
$context['widths'][5] = $context['widths'][6] = '960px';
}

Offline Chen Zhen

  • The Underdog
  • Operations Manager
  • *
  • Posts: 1285
  • Gender: Male
  • Kinesis
    • WebDev
  • SMF Version: 2.1
  • SP Version: 2.3.7
  • Elkarte Version: None
Re: PHP 7.1 : A non well formed numeric value encountered
« Reply #1 on: July 09, 2017, 08:14:22 AM »

Thanks for the report although intval may be for suitable than float.

Offline KathyL

  • Semi Newbie
  • *
  • Posts: 5
  • SMF Version: 2.0.11
  • SP Version: 2.3.6
Re: PHP 7.1 : A non well formed numeric value encountered
« Reply #2 on: July 11, 2017, 09:57:32 PM »

Thanks for the report although intval may be for suitable than float.
Thanks for the suggestion - I'll update my code.

Update:  I tried 'intval' but it generated "syntax error, unexpected '$context' (T_VARIABLE)" errors - 'int' seems to be working though.
« Last Edit: July 12, 2017, 03:24:22 AM by KathyL »

Offline emanuele

  • Developer
  • *
  • Posts: 288
Re: PHP 7.1 : A non well formed numeric value encountered
« Reply #3 on: July 12, 2017, 07:20:43 AM »
intval is a function
int is a type
Both are equivalent in the outcome, but you use them differently:
Code: [Select]
$something = intval($something);
$something = (int) $something;

Offline Chen Zhen

  • The Underdog
  • Operations Manager
  • *
  • Posts: 1285
  • Gender: Male
  • Kinesis
    • WebDev
  • SMF Version: 2.1
  • SP Version: 2.3.7
  • Elkarte Version: None
Re: PHP 7.1 : A non well formed numeric value encountered
« Reply #4 on: July 12, 2017, 08:41:31 PM »

For a better understanding, you can use php.net for a reference:
http://php.net/manual/en/function.intval.php