Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 13776|Odpowiedź: 1

[Wzajemna Pomoc] Jak naprawić błąd Includes\cls_template.php na linii 418 w ecshopie

[Skopiuj link]
Opublikowano 20.02.2015 17:20:02 | | |

Problem, z którym się wcześniej spotkałem, byłem bardzo zaniepokojony, jak go rozwiązać, a teraz w końcu znalazłem rozwiązanie, którym się z wami podzielę, problem wygląda następująco:
Ścisłe standardy: Tylko zmienne powinny być przekazywane przez odwołanie w upload\includes\cls_template.php na linii 418
Linia 418: $tag_sel = array_shift(eksplodować(' ', $tag));

Obejście 1:
Problem z wersjami 5.3 i wyższymi powinien również dotyczyć konfiguracji Dopóki linia 418 dzieli to zdanie na dwa zdania, nie ma problemu $tag_sel = array_shift(explode(' ', $tag)); Zmieniono na:

$tag_arr = eksplodować(' ', $tag); $tag_sel = array_shift($tag_arr);
Ponieważ parametry array_shift są przekazywane przez odwołanie, domyślnie można przekazać tylko konkretne zmienne powyżej 5.3 i wartość nie może być zwracana przez funkcję
Podobnie, gdy napotykamy błędy zagnieżdżania funkcji, można je zapisać osobno, a błędy zostaną rozwiązane naturalnie

Gdy:
funkcja get_dyna_libs($theme, $tmp)
{
$extsub = eksplodować('.', $tmp);
$ext = end($extsub);
$tmp = nazwa podstawowa($tmp,".$ext");
$sql = 'WYBIERZ region, bibliotekę, sort_order, identyfikator, numer, typ'.
'OD '. $GLOBALS['ecs']->table('template').
" WHERE theme = '$theme' AND file name = '" . $tmp. "' AND wpisz > 0 AND remarks=''".
'KOLEJNOŚĆ WEDŁUG regionu, biblioteki sort_order';
$res = $GLOBALS['db']->getAll($sql);
$dyna_libs = array();
foreach ($res AS $row)
{
$dyna_libs[$row['region']][$row['library']][] = array(
'id' => $row['id'],
'number' => $row['number'],
'type' => $row['type']
);
}
return $dyna_libs;
}

set $ext = end(explode('.', $tmp));
Zmiana
$extsub = eksplodować('.', $tmp);
$ext = end($extsub);

Rozwiązanie 2 (Błąd maskowania):

Albo jeśli skonfigurowano tak: error_reporting = E_ALL | E_STRICT
W php.ini dostępne są następujące ustawienia:
error_reporting = E_ALL | E_STRICT

Oznacza to, że wyświetlane są ostrzeżenia dotyczące standardów kodowania.
Joomla faktycznie zaleca anulowanie wyciągu błędów, które powinno zostać zmienione na w razie potrzeby debugowania
error_reporting = E_ALL & ~E_NOTICE

Problem został rozwiązany.




Poprzedni:Interfejs API informacji kosmicznej QQ
Następny:Który system blogowania osobistego jest lepszy, porozmawiajmy o tym
Opublikowano 21.02.2015 21:13:21 |
Zaleca się bezpośrednie ograniczenie wersji PHP do PHP5.2.x
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com