Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13776|Antwort: 1

[Gegenseitige Hilfe] Wie man den Fehler in Include cls_template.php s\ in Zeile 418 in ecshop behebt.

[Link kopieren]
Veröffentlicht am 20.02.2015 17:20:02 | | |

Das Problem, dem ich zuvor begegnet bin, war sehr beunruhigt, wie ich es lösen kann, und jetzt habe ich endlich eine Lösung gefunden und werde sie mit euch teilen, das Problem ist wie folgt:
Strenge Standards: Nur Variablen dürfen durch Referenz im Upload\includes\cls_template.php in Zeile 418 weitergegeben werden
Zeile 418: $tag_sel = array_shift(explode(' ', $tag));

Workaround 1:
Das Problem mit den Versionen 5.3 und höher sollte auch mit der Konfiguration zusammenhängen. Solange Zeile 418 diesen Satz in zwei Sätze aufteilt, gibt es kein Problem $tag_sel = array_shift(explode(' ', $tag)); Geändert zu:

$tag_arr = explodieren(' ', $tag); $tag_sel = array_shift($tag_arr);
Da die Parameter von array_shift durch Referenz übermittelt werden, können standardmäßig nur spezifische Variablen über 5,3 übergeben werden, und der Wert kann nicht über die Funktion zurückgegeben werden
Ebenso können bei Funktionsverschachtelungsfehlern diese separat geschrieben werden, und die Fehler werden auf natürliche Weise gelöst

Wie:
Funktion get_dyna_libs($theme, $tmp)
{
$extsub = explodieren('.', $tmp);
$ext = End($extsub);
$tmp = Basisname($tmp,".$ext");
$sql = 'WÄHLE Region, Bibliothek, sort_order, id, Nummer, Typ'.
'VON ' . $GLOBALS['ecs']->table('template') .
" WO theme = '$theme' UND Dateiname = '" . $tmp . "' UND tippen > 0 UND bemerkungen=''".
'ORDNUNG NACH Region, Bibliothek, sort_order';
$res = $GLOBALS['db']->getAll($sql);
$dyna_libs = Array();
foreach ($res ALS $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));
Veränderung
$extsub = explodieren('.', $tmp);
$ext = End($extsub);

Lösung 2 (Maskierungsfehler):

Oder wenn es so konfiguriert ist: error_reporting = E_ALL | E_STRICT
Die folgenden Einstellungen sind im php.ini verfügbar:
error_reporting = E_ALL | E_STRICT

Das bedeutet, dass Warnhinweise für Codierungsstandards angezeigt werden.
Joomla empfiehlt tatsächlich, die Fehlerausgabe zu unterbrechen, was bei Bedarf für das Debugging geändert werden sollte.
error_reporting = E_ALL & ~E_NOTICE

Das Problem war gelöst.




Vorhergehend:QQ-Speicherinformations-API-Schnittstelle
Nächster:Welches persönliche Blogsystem ist besser? Lass uns darüber sprechen
Veröffentlicht am 21.02.2015 21:13:21 |
Es wird empfohlen, die PHP-Version direkt auf PHP5.2.x zu reduzieren
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com