SimplePortal

Support => Install and Upgrade => Topic started by: Aw06 on April 04, 2010, 08:38:01 AM

Title: : runtime-created function
Post by: Aw06 on April 04, 2010, 08:38:01 AM
Not sure if this is related to SP, but after installing SP 2.3.2 my logs are riddled with this error, like 300 pages..

Code: [Select]
http://xxxxx.xxx/forum/index.php?
8: Undefined offset: 0
File: /home/xxxxx/public_html/forum/Sources/Load.php(224) : runtime-created function
Line: 15

Line 15 of Sources/Load.php
Code: [Select]
* the terms of the provided license as published by Simple Machines LLC.
Any Ideas ?

Line 224:
Code: [Select]
}'),
Lines above
Code: [Select]
// Preg_replace can handle complex characters only for higher PHP versions.
$space_chars = $utf8 ? (@version_compare(PHP_VERSION, '4.3.3') != -1 ? '\x{A0}\x{AD}\x{2000}-\x{200F}\x{201F}\x{202F}\x{3000}\x{FEFF}' : "\xC2\xA0\xC2\xAD\xE2\x80\x80-\xE2\x80\x8F\xE2\x80\x9F\xE2\x80\xAF\xE2\x80\x9F\xE3\x80\x80\xEF\xBB\xBF") : '\x00-\x08\x0B\x0C\x0E-\x19\xA0';

$smcFunc += array(
'entity_fix' => create_function('$string', '
$num = substr($string, 0, 1) === \'x\' ? hexdec(substr($string, 1)) : (int) $string;
return $num < 0x20 || $num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF) || $num == 0x202E ? \'\' : \'&#\' . $num . \';\';'),
'htmlspecialchars' => create_function('$string, $quote_style = ENT_COMPAT, $charset = \'ISO-8859-1\'', '
global $smcFunc;
return ' . strtr($ent_check[0], array('&' => '&amp;')) . 'htmlspecialchars($string, $quote_style, ' . ($utf8 ? '\'UTF-8\'' : '$charset') . ')' . $ent_check[1] . ';'),
'htmltrim' => create_function('$string', '
global $smcFunc;
return preg_replace(\'~^(?:[ \t\n\r\x0B\x00' . $space_chars . ']|&nbsp;)+|(?:[ \t\n\r\x0B\x00' . $space_chars . ']|&nbsp;)+$~' . ($utf8 ? 'u' : '') . '\', \'\', ' . implode('$string', $ent_check) . ');'),
'strlen' => create_function('$string', '
global $smcFunc;
return strlen(preg_replace(\'~' . $ent_list . ($utf8 ? '|.~u' : '~') . '\', \'_\', ' . implode('$string', $ent_check) . '));'),
'strpos' => create_function('$haystack, $needle, $offset = 0', '
global $smcFunc;
$haystack_arr = preg_split(\'~(&#' . (empty($modSettings['disableEntityCheck']) ? '\d{1,7}' : '021') . ';|&quot;|&amp;|&lt;|&gt;|&nbsp;|.)~' . ($utf8 ? 'u' : '') . '\', ' . implode('$haystack', $ent_check) . ', -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
$haystack_size = count($haystack_arr);
if (strlen($needle) === 1)
{
$result = array_search($needle, array_slice($haystack_arr, $offset));
return is_int($result) ? $result + $offset : false;
}
else
{
$needle_arr = preg_split(\'~(&#' . (empty($modSettings['disableEntityCheck']) ? '\d{1,7}' : '021') . ';|&quot;|&amp;|&lt;|&gt;|&nbsp;|.)~' . ($utf8 ? 'u' : '') . '\',  ' . implode('$needle', $ent_check) . ', -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
$needle_size = count($needle_arr);

$result = array_search($needle_arr[0], array_slice($haystack_arr, $offset));
while (is_int($result))
{
$offset += $result;
if (array_slice($haystack_arr, $offset, $needle_size) === $needle_arr)
return $offset;
$result = array_search($needle_arr[0], array_slice($haystack_arr, ++$offset));
}
return false;
}'),
Title: Re: : runtime-created function
Post by: Nathaniel on April 04, 2010, 09:29:46 AM
Looks like an issue with an SMF function that SimplePortal does not edit in any way. Its possible that this error is occuring when SimplePortal calls the $smcFunc['strpos'] function, still SimplePortal calls the function properly, so its an SMF issue.

I couldn't replicate this issue myself. Do you have any particularly large (or small) articles or board news topics that are being published on your portal?
Title: Re: : runtime-created function
Post by: Aw06 on April 04, 2010, 09:33:21 AM
Have a few articles, wouldn't saw extremely large.. See page here
http://photojamaica.net/

The error happens each time the portal page is loaded
Title: Re: : runtime-created function
Post by: Aw06 on April 04, 2010, 09:37:40 AM
I also made this change ? could it be the cause ??

http://simpleportal.net/index.php?topic=5054.msg30660#msg30660
Title: Re: : runtime-created function
Post by: Aw06 on April 04, 2010, 09:52:14 AM
I also made this change ? could it be the cause ??

http://simpleportal.net/index.php?topic=5054.msg30660#msg30660

OK, I un-did those changes, same error  :(
Title: Re: : runtime-created function
Post by: Aw06 on April 04, 2010, 11:02:00 PM
40 pages of the same error ?? about to go back to 2.3.1 :(
Title: Re: : runtime-created function
Post by: [SiNaN] on April 05, 2010, 03:58:25 AM
Well, firstly I would suggest patience. It isn't even 24 hours and you have 4 posts after Nathaniel's. We are all volunteers here.

Clear your error log. Try changing the portal mode to Disabled and see if you still get errors in the log when SimplePortal is disabled.
Title: Re: : runtime-created function
Post by: Aw06 on April 05, 2010, 07:10:33 AM
yeah, sorry about that :-[

Disabled portal, no error, error only happens when a users hits the portal page... could it be bad coding in a html block ?
Title: Re: : runtime-created function
Post by: [SiNaN] on April 05, 2010, 10:54:47 AM
Do you have any Custom PHP blocks?

First disable articles feature and see if you still get errors. If you do get errors, then try disabling each block until you stop getting the error.

You can make these tests with the portal on maintenance mode.
Title: Re: : runtime-created function
Post by: Aw06 on April 05, 2010, 11:10:29 AM
OK, will try..
Title: Re: : runtime-created function
Post by: Aw06 on April 05, 2010, 11:16:57 AM
OK, disable articles and no error, what's the next step now...
Title: Re: : runtime-created function
Post by: [SiNaN] on April 05, 2010, 11:30:31 AM
Did you recently remove a topic which was added as an article? See if this fixes it:

Sources/PortalArticles.php

Code: (Find) [Select]
if (($cutoff = $smcFunc['strpos']($row['body'], '')) !== false)
Code: (Replace) [Select]
if (!isset($row['body']) || $row['body'] === '')
return;

if (($cutoff = $smcFunc['strpos']($row['body'], '')) !== false)
Title: Re: : runtime-created function
Post by: Aw06 on April 05, 2010, 11:45:05 AM
same error, this time its spitting out more error on each refresh, before it was 2 each refresh, now about 10..

can i upload a fresh copy of Sources/PortalArticles.php

rmember the change i asked you for the stop showing the read more on every article, could it be that ??
Title: Re: : runtime-created function
Post by: Aw06 on April 05, 2010, 04:17:08 PM
I copied a fresh .PortalArticles.php and errors gone now .. seems i had this line incorrect..

This Line
Code: [Select]
if (($cutoff = $smcFunc['strpos']($row['body'], '')) !== false)
Should Have Actually Been
Code: [Select]
[nobbc]if (($cutoff = $smcFunc['strpos']($row['body'], '[cutoff]')) !== false)[/nobbc]
cutoff was missing
SimplePortal 2.3.8 © 2008-2024, SimplePortal