Hallo zusammen,
wenn man die PHP Errors sich alle anzeigen lässt und die Infos nicht ausblendet sieht man, dass viele globale Variablen wie DB_CACHE vor Ihrer definition innerhalb PHP abgefragt werden.
Bsp.: shop -> admin/start.php
Die Variable DB_CACHE steht in der DB, ist aber zur Zeit als xtc_db_fetch_array.inc.php includiert und ausgeführt wird, noch garnicht aus der DB ausgelesen und so führt es bei allen XTC Versionen zu einem unnötigen overhead.
Dies ist einfach zu unterbinden. In xtc_db_fetch_array.inc.php die funktion
function xtc_db_fetch_array
(&$db_query,$cq=false) { if (DB_CACHE
=='true' && $cq) { // BOF - Tomcraft - 2009-08-18 - fixed bug with switched on DB-CACHE in relation with multi-language metatags.php //if (!count($db_query)) return false; if (!is_array($db_query) || !count($db_query)) return false; // BOF - Tomcraft - 2009-08-18 - fixed bug with switched on DB-CACHE in relation with multi-language metatags.php $curr = current($db_query); next($db_query); return $curr; } else { if (is_array($db_query)) { $curr = current($db_query); next($db_query); return $curr; } return mysql_fetch_array($db_query, MYSQL_ASSOC
); }} ändert in:
function xtc_db_fetch_array
(&$db_query,$cq=false) { if (DB_CACHE
=='true' && $cq) { if (defined('DB_CACHE')) { // BOF - Tomcraft - 2009-08-18 - fixed bug with switched on DB-CACHE in relation with multi-language metatags.php //if (!count($db_query)) return false; if (!is_array($db_query) || !count($db_query)) return false; // BOF - Tomcraft - 2009-08-18 - fixed bug with switched on DB-CACHE in relation with multi-language metatags.php $curr = current($db_query); next($db_query); return $curr; } else { if (is_array($db_query)) { $curr = current($db_query); next($db_query); return $curr; } return mysql_fetch_array($db_query, MYSQL_ASSOC
); } }} Einfügen und schon spart man sich diesen Overhead und das System arbeitet schneller.
Allein die Variable DB_CACHE verursacht bei einem Aufruf über die Dateien
- includes/application_top.php
- inc/xtc_db_num_rows.inc.php
- inc/xtc_db_fetch_array.inc.php
- inc/xtc_db_data_seek.inc.php
schon mehr als 200 solcher Informationsmeldungen.
Dann gibt es da noch die globalen Variablen, die zu genau dem Gleichen ergebnis beitragen!
IMAGE_MANIPULATOR
SESSION_FORCE_COOKIE_USE
...
Ich versuche mal weitere zu finden.
Für den Anfang würde ich empfehlen
- inc/xtc_db_num_rows.inc.php
- inc/xtc_db_fetch_array.inc.php
- inc/xtc_db_data_seek.inc.php
- application_top zeile 275 --> if (defined('IMAGE_MANIPULATOR')) define('FILENAME_IMAGEMANIPULATOR',IMAGE_MANIPULATOR);
zu bearbeiten. Die weiteren finde ich noch raus.
Was haltet ihr davon? Dauert die Abfrage die ich eingebaut habe, eventuell länger als die Fehlermeldungsausgabe bei PHP?
Gruß Euer
Cenk
Linkback: https://www.modified-shop.org/forum/index.php?topic=2854.0