SimplePortal
Support => Install and Upgrade => Topic started 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..
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
* the terms of the provided license as published by Simple Machines LLC.
Any Ideas ?
Line 224:
}'),
Lines above
// 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('&' => '&')) . '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 . ']| )+|(?:[ \t\n\r\x0B\x00' . $space_chars . ']| )+$~' . ($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') . ';|"|&|<|>| |.)~' . ($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') . ';|"|&|<|>| |.)~' . ($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;
}'),
-
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?
-
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
-
I also made this change ? could it be the cause ??
http://simpleportal.net/index.php?topic=5054.msg30660#msg30660
-
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 :(
-
40 pages of the same error ?? about to go back to 2.3.1 :(
-
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.
-
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 ?
-
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.
-
OK, will try..
-
OK, disable articles and no error, what's the next step now...
-
Did you recently remove a topic which was added as an article? See if this fixes it:
Sources/PortalArticles.php
if (($cutoff = $smcFunc['strpos']($row['body'], '')) !== false)
if (!isset($row['body']) || $row['body'] === '')
return;
if (($cutoff = $smcFunc['strpos']($row['body'], '')) !== false)
-
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 ??
-
I copied a fresh .PortalArticles.php and errors gone now .. seems i had this line incorrect..
This Line
if (($cutoff = $smcFunc['strpos']($row['body'], '')) !== false)
Should Have Actually Been
[nobbc]if (($cutoff = $smcFunc['strpos']($row['body'], '[cutoff]')) !== false)[/nobbc]
cutoff was missing