Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Fatal error: Cannot redeclare xtdbquery()

    setos

    • Neu im Forum
    • Beiträge: 14
    Fatal error: Cannot redeclare xtdbquery()
    am: 25. Februar 2013, 06:22:32
    Guten Morgen,

    ich hoffe sehr, mir kann jemand helfen, sonst waren 2 Jahre Arbeit umsonst.
    Ich wollte soeben in der Kundenübersicht (Admin) den Firmennamen mit anzeigen
    lassen und habe, entsprechend der Doku folgendes gemacht:

    Um in der Kundenübersicht weitere Angaben (Firmenname, Kundennummer etc.) darzustellen, folgende Änderungen einbauen.

    In der Datei /admin/customers.php müssen folgende Änderungen/Ergänzungen vorgenommen werden:

    Für die Tabellenüberschrift:
    Unter diese Zeile
    Code: PHP  [Auswählen]
    <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_LASTNAME.
    xtc_sorting(FILENAME_CUSTOMERS,'customers_lastname'); ?></td>

    Eine neue Zeile einfügen
    Code: PHP  [Auswählen]
    <td class="dataTableHeadingContent" width="40"><?php echo TABLE_HEADING_CUSTOMERSCID.
    xtc_sorting(FILENAME_CUSTOMERS,'customers_cid'); ?></td>

    Für den Tabelleninhalt:
    Vor diese Zeile
    Code: PHP  [Auswählen]
    <td class="dataTableContent"><b><?php echo $customers['customers_lastname']; ?></b></td>

    Eine neue Zeile einfügen
    Code: PHP  [Auswählen]
    <td class="dataTableContent"><?php echo $customers['customers_cid']; ?></td>

    Für die Sortierung: Unter diese Zeilen
    Code: PHP  [Auswählen]
    case 'date_account_created-desc' :
    $sort = 'order by ci.customers_info_date_account_created DESC';
    break;

    Neue Zeilen einfügen
    Code: PHP  [Auswählen]
    case 'customers_cid' :
    $sort = 'order by c.customers_cid';
    break;
    case 'customers_cid-desc' :
    $sort = 'order by c.customers_cid DESC';
    break;

    Für die Einbindung der Kundenummer im Datenbank-Query:
    Zeilen editieren und Eintrag für die Abfrage des Kundennummernfeldes " c.customers_cid," hinzufügen
    Code: PHP  [Auswählen]
    $customers_query_raw = "select
    c.account_type,
    c.customers_id,
    c.customers_vat_id, [... hier folgen noch weitere Abfragefelder]

    Neu:
    Code: PHP  [Auswählen]
    $customers_query_raw = "select
    c.account_type,
    c.customers_id,
    c.customers_cid,
    c.customers_vat_id, [...hier folgen noch weitere Abfragefelder]

    All dies habe ich gemacht, mehrfach überprüft und VORHER sowohl eine Sicherung der
    Datei, als auch der Datenbank vorgenommen !

    Dennoch erhalte ich nun beim Aufruf der Kundenübersicht folgende Meldung:

    Code: PHP  [Auswählen]
    Fatal error: Cannot redeclare xtdbquery() (previously declared in /home/www/admin/includes/application_top.php:301) in /home/www/admin/includes/application_top.php on line 309

    Ok, dumm gelaufen. Dachte ich........
    Also habe ich zuerst die gesicherte Datei cutomers.php wieder hochgeladen.

    Scheisse, die Meldung ist immer noch da !

    Dann habe ich die vorher gesicherte Datenbank wiederhergestellt.

    Scheisse, die Meldung ist immer noch da !

    Ich hoffe sehr, dass mir jemand helfen kann, meinen Shop kann ich ansonsten in
    die Tonne hauen und alles war umsonst. Ich komme jetzt nur noch über die
    Datenbank an die Kundendaten.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=24973.0

    jannemann

    • modified Team
    • Beiträge: 6.275
    • Geschlecht:
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #1 am: 25. Februar 2013, 07:32:04
    Guten morgen,

    Hast du mal deinen Browser Cache geleert?

    setos

    • Neu im Forum
    • Beiträge: 14
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #2 am: 25. Februar 2013, 07:38:19
    Ja, habe ich gemacht.
    Habe auch den kompletten Ordner Admin drübergebügelt.

    Die application_top sieht an der bemängelten Stelle so aus, unterscheidet sich aber nicht vom Backup:

    Code: PHP  [Auswählen]
      }

      define('FILENAME_IMAGEMANIPULATOR',IMAGE_MANIPULATOR);
        function xtDBquery($query) {
           if (DB_CACHE=='true') {
                 $result=xtc_db_queryCached($query);
                 //echo 'cached query: '.$query.'<br>';
              } else {
                 $result=xtc_db_query($query);
        }
        return $result;
      }

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #3 am: 25. Februar 2013, 08:19:34
    Du hast anscheinend Änderungen in application_top.php vorgenommen, in Zeile 309 wird die Funktion xtdbquery() nochmal deklariert, die vorher schon in Zeile 301 deklariert wurde. Diese Änderung musst du rückgängig machen.

    Bisschen reißerischer Thread-Titel, oder?

    setos

    • Neu im Forum
    • Beiträge: 14
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #4 am: 25. Februar 2013, 10:50:53
    Die application_top ist unverändert, ich habe diese auch komplett vom server gelöscht und die Originaldatei hochgeladen, es funktioniert immer noch nicht.

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #5 am: 25. Februar 2013, 11:00:27
    Die Fehlermeldung ist eindeutig. Und es geht um die application_top.php im Admin-Ordner.

    setos

    • Neu im Forum
    • Beiträge: 14
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #6 am: 25. Februar 2013, 14:16:30
    Problem gelöst...

    Schaut man sich Threads aus allen möglichen Foren an, so handelt es sich um ein
    immer wiederkehrendes Problem. Die application_top.php ist schneinbar nie das Problem.
    Ein befreundeter IT-Leiter hat mir folgendes geschrieben:

    Such einfach nach xtdbquery in allen Dateien.

    Die Funktion darf nur in /home/www/admin/includes/application_top.php:301 deklariert sein!!!

    Den Fehler gefunden habe ich in einem Modul.

    Hasenpriester

    • Neu im Forum
    • Beiträge: 17
    • Geschlecht:
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #7 am: 26. Mai 2015, 22:42:47
    Ich habe mich auch eben ein paar Stunden mit dem Problem rumgequält und die Lösung war ganz sicher nicht es aus einem anderen Modul zu entfernen die wie schon gesagt wurde, die Fehlermeldung ist eindeutig .. fehlerhaft :D

    Code: PHP  [Auswählen]
    Fatal error: Cannot redeclare xtdbquery() (previously declared in /home/www/admin/includes/application_top.php:301) in /home/www/admin/includes/application_top.php on line 309

    Also die Funktion wurde in Zeile 301 das erste mal definiert und anschließend in Zeile 309 ein zweites mal. Schaut man sich den Quelltext an ist das einfach unmöglich, dort sind auch keine includes etc. die das verursachen könnten. Der Fehler findet sich hier im Forum auch mehrfach, zwar nicht immer die gleichen Zeilen aber immer mit Abstand von 8 Zeilen.

    Die Ursache war bei mir das PECL Modul: apd.
    Ich hatte das installiert weil ich die htmlspecialchars überschreiben wollte damit ISO statt UTF-8 bevorzugt wird - alter shop, PHP 5.4 ;)
    Erst ab da an trat der Fehler auf aber auch nicht immer sondern nur bei vielleicht jedem 10 Aufruf, manchmal ging es auch länger gut und manchmal lief es 10 Sekunden lang gar nicht.
    Ich habe auf dem Server mehrere modified shops laufen und bei allen trat der Fehler auf, versionsmäßig ist von 1.4 bis zur 1.6 SP2 alles vertreten. Warum der Fehler genau an dieser Stelle sichtbar wird ist mir immer noch total unbegreiflich. Meine Vermutung war erst dass es vielleicht ein Encoding Problem ist oder irgend ein unsichtbares Zeichen, vielleicht ein fehlendes '\r' oder '\n' etc. aber ich konnte nichts finden. Habe die besagte Stelle komplett von Hand neu geschrieben ohne Erfolg.

    Sollte dieser Fehler noch einmal bei jemanden auftreten so sollte er zu erst gucken ob besagtes apd installiert ist und wenn nicht auch testweise mal andere profiler / debugger deaktivieren.

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Fatal error: Cannot redeclare xtdbquery()
    Antwort #8 am: 27. Mai 2015, 00:55:54
    Diese Fehlermeldung kommt u.a. auch (bzw. meistens), wenn man versucht die "application_top.php" ein 2. mal einzubinden.

    Gruß
    27 Antworten
    12781 Aufrufe
    02. Dezember 2010, 22:26:28 von voodoopupp
    2 Antworten
    1199 Aufrufe
    13. Dezember 2017, 22:06:25 von Timm