Kein Zugriff auf den shop und admin-Bereich

Hallo zusammen,

ich bin neu hier, und habe auch direkt ein Problem mit dem Shop.
Die Situation ist wie folgt:

Ich möchte einen Shop (version 4.7.4) den ich jetzt einige Zeit nicht genutzt habe, von meinem bisherigen Provider umziehen, da dieser die bisher genutzte PHP-Version nicht mehr zur Verfügung stellt.

Also habe ich einen Server mit der entsprechenden Konfiguration aufgesetzt und die Dateien und die Datenbank dort aufgespielt. Nur leider habe ich die admin-Zugangsdaten nicht mehr vorliegen.

In der Datenbank konnte ich nun den Admin-Usernamen herausfinden.

Das Frontend wird mir nicht angezeigt, obwohl in der Tabelle ‘oxuser’ in der Spalte ‘oxactive’ eine 1 gesetzt ist. So kann ich leider nicht das Passwort für den Admin-User ändern. Gibt es eine Möglichkeit diese Funktion direkt aufzurufen?

Aus der ‘oxuser’-Tabelle stehen mir zur Lösung dieses Problems die Werte der Spalten ‘OXPASSWORD’ & ‘OXPASSALT’ zur Verfügung. Kann ich damit das Passwort wiederherstellen?

Jörg

//set pwd to test1234
UPDATE oxuser SET OXPASSWORD = ‘daa09fbfc4a84d9c15ffe3a3aad700a589e2c48cea902750c9d8693bed0e81f60f099d7ecb6a408e1c8901b2b92aad97b322274efdc05e2bcbe19dfcc306a23e’, OXPASSSALT=‘094e09ca1d3300d7b935119b2f92f7fa’ WHERE oxuser.OXUSERNAME = ‘admin’

danach am besten nochmal ändern :wink:

Danke für den Tip, aber es hat leider nicht funktioniert.

Username für den Admin is “admin”?

nein, der ist eine E-Mailadresse, diese habe ich in dem Befehl auch eingesetzt statt ‘admin’

Ist der Algorithmus bekannt mit dem das passwort verschlüsselt wurde?

auch mit dem username ‘admin’ funktioniert es nicht.

Gibt es eine Möglichkeit die Passwort-vergessen-Funktion irgendwie direkt aufrufen?

Hallo Jörg,

Was meinst Du mit “Das Frontend wird mir nicht angezeigt”? Das ist eigentlich nicht abhängig vom Aktiv-Status des Benutzers.

Wenn das Admin Passwort im Shop vergessen wurde und man Zugriff auf die Datenbank hat, gehen wir gerne diesen Weg:

  • Neuen User im Frontend Registrieren
  • Dann in der Datenbank in der Tabelle ‘oxuser’ im Feld ‘OXRIGHTS’ den Wert auf ‘malldamin’ setzen

Danach kannst Du dich im Backend/Admin mit dem User und den selbst gewählten Zugangsdaten anmelden.

Grüße,
Thorsten

Hallo Thorsten,

der Shop wird mir nicht angezeigt. Die Anfrage wird beim Aufruf der shop-Domain auf die offline.html umgeleitet, also so als ob der shop im Wartungsmodus ist.
Somit kann ich leider auf diesem Wege keinen neuen User registrieren.

Gruß

Jörg

durch den Umzug hat sich auch die shop-Domain geändert. Ich habe diese auch in der config.inc.php geändert. Ist es möglicherweise nötig, diese an anderer Stelle ebenfalls zu ändern?

Wenn Du eine Wartungsseite angezeigt bekommst, dann sollte in der Datei /log/EXCEPTION.log etwas zu finden sein, was quer steckt.

Grundsätzlich genügt es, die Domain in der config.inc.php zu ändern. Es ist generell bei solchen Problemen auch ratsam den Cache zu leeren. Das sind Dateien die unter /tmp und /tmp/smarty liegen (die .htaccess im /tmp sollte man dort liegen lassen, ist aber eher ein Sicherheitsaspekt und hat keine Auswirkung auf die Funktion des Shops)

Ja da steht tatsächlich etwas mehr Info drin:

oxSystemComponentException-oxException (time: 2020-05-11 22:14:35): [0]: EXCEPTION_SYSTEMCOMPONENT_TEMPLATENOTFOUND
Stack Trace: #0 /var/customers/webs/oxshop/core/oxutilsobject.php(125): oxUtilsObject->_getObject(‘oxsystemcompone…’, 0, Array)
#1 [internal function]: oxUtilsObject->oxNew(‘oxSystemCompone…’)
#2 /var/customers/webs/oxshop/core/oxfunctions.php(314): call_user_func_array(Array, Array)
#3 /var/customers/webs/oxshop/views/oxshopcontrol.php(412): oxNew(‘oxSystemCompone…’)
#4 /var/customers/webs/oxshop/views/oxshopcontrol.php(317): oxShopControl->_render(Object(Login))
#5 /var/customers/webs/oxshop/views/oxshopcontrol.php(114): oxShopControl->_process(‘login’, ‘checklogin’)
#6 /var/customers/webs/oxshop/index.php(103): oxShopControl->start()
#7 {main}

Faulty component --> login.tpl

Allerdings sagen mir persönlich diese Daten nicht so viel.

Die login.tpl habe ich im Verzeichnis out/admin/tpl gefunden.

Ich habe in der config.inc.php den Wert für die Debug-Funktion auf 4 gesetzt (SQL + smarty + shoptemplate data) und beim Aufruf des Backend-Login folgende Ausgabe bekommen:

2020-05-11 23:01:51exception ‘ADODB_Exception’ with message ‘mysql error: [1146: Table ‘database3.oxv_oxcountry_en’ doesn’t exist] in EXECUTE(“select oxtitle from oxv_oxcountry_en where oxisoalpha2 = ‘de’”) ’ in /var/customers/webs/oxshop/core/adodblite/adodb-exceptions.inc.php:84 Stack trace: #0 /var/customers/webs/oxshop/core/adodblite/adodbSQL_drivers/mysql/mysql_driver.inc(369): adodb_throw(‘mysql’, ‘EXECUTE’, 1146, ‘Table ‘database…’, ‘select oxtitle …’, false, Object(object_ADOConnection)) #1 /var/customers/webs/oxshop/core/adodblite/generic_modules/pear_module.inc(70): mysql_driver_ADOConnection->do_query(‘select oxtitle …’, -1, -1, false) #2 /var/customers/webs/oxshop/core/adodblite/generic_modules/pear_module.inc(56): pear_ADOConnection->GetRow(‘select oxtitle …’, false, true) #3 /var/customers/webs/oxshop/core/oxlegacydb.php(90): pear_ADOConnection->GetOne(‘select oxtitle …’, false) #4 /var/customers/webs/oxshop/admin/oxadminview.php(518): oxLegacyDb->getOne(‘select oxtitle …’, false, false) #5 /var/customers/webs/oxshop/admin/oxadminview.php(248): oxAdminView->_getCountryByCode(‘de’) #6 /var/customers/webs/oxshop/admin/oxadminview.php(205): oxAdminView->getServiceUrl() #7 /var/customers/webs/oxshop/views/oxview.php(188): oxAdminView->addGlobalParams() #8 /var/customers/webs/oxshop/admin/oxadminview.php(174): oxView->init() #9 /var/customers/webs/oxshop/views/oxshopcontrol.php(367): oxAdminView->init() #10 /var/customers/webs/oxshop/views/oxshopcontrol.php(309): oxShopControl->_initializeViewObject(‘login’, NULL) #11 /var/customers/webs/oxshop/views/oxshopcontrol.php(114): oxShopControl->_process(‘login’, NULL) #12 /var/customers/webs/oxshop/index.php(103): oxShopControl->start() #13 /var/customers/webs/oxshop/admin/index.php(40): require_once(’/var/customers/…’) #14 {main} ---------------------------------------------

Ich hoffe das ist bei der Fehlersuche hilfreich.

OK, ich habe hier einige Fehler finden und auch beheben können. So war z. B. ein falscher Zeichsatz für den Login-Error verantwortlich.

Vielen Dank trotzdem für die Bemühungen.

Momentan komme ich zwar trozdem nicht in den Admin-Bereich, sondern mit den Admin-Zugangsdaten “nur” in den Shop.

Gibt es eine Idee was dies verursachen könnte?

Guten Morgen. Vermutlich hast Du beim kopieren der Datenbank die Views nicht mitgenommen. Das ist nichts ungewöhnliches. Führt aber zu dem von dir beschriebenen Szenario. Du musst die Views neu generieren lassen. Das geht im Admin… Ein Teufelskreis :smiley:

Damit Du in den Admin kommst, kannst Du in der config.inc.php einstellen, dass er die Views (die aktuell nicht existieren) ignorieren und direkt auf die Basistabellen zugreifen soll. Das machst Du mit der folgenden Option:
$this->blSkipViewUsage = true;

Sicherheitshalber nochmal den Cache leeren :smiley:
Danach im Admin einloggen und unter Service > Tools den Button “VIEWS jetzt updaten” klicken.
Dann die Option wieder aus der config.inc.php entfernen, sonst wird nicht auf die Views zugegriffen, was im wesentlichen sprachliche Auswirkungen hat.

Das ist bei den ersten sql-Improten tatsächlich so gewesen. Ich habe das auch bemerkt und mit dem root-user die Datenbank importiert, so dass auch die views mit übertragen wurden.

Die Option $this->blSkipViewUsage = true; habe ich dennoch einmal ausprobiert, komme aber trotzdem nicht in das Backend, sondern nur in ein Shop-Konto mit der Admin-E-Mailadresse als Benutzername.

Ist es möglicherweise hilfreich die Views aus der Datenbank zu entfernen und das System auf diese
Weise dazu zu zwingen auf die Basistabellen zuzugreifen?

Dann musst du an dieser Stelle wieder ins Log schauen ob jetzt eine andere Fehlermeldung protokolliert wird, denn die von dir gepostete wird damit nicht mehr auftreten.

hi,

na da sind ja wirklich ein paar Fehler.

ist die login.tpl vorhanden und wenn ja hat sie einen inhalt?

2020-05-11 23:01:51
exception ‘ADODB_Exception’ with message ‘mysql error:
[1146: Table ‘database3.oxv_oxcountry_en’ doesn’t exist] in
EXECUTE(“select oxtitle from oxv_oxcountry_en where oxisoalpha2 = ‘de’”) ’

die view ist nicht vorhanden?
erstelle eine neue php datei mit folgendem inhalt auf dem server und rufe sie ihm browser auf.
sie generiert alle views ohne im Backend eingeloggt zu sein.
hier der code und die beschreibung dazu:

https://kenny.wildfeuer.net/blog/oxid-ohne-views-oxv_-starten/

Hallo, leider konnte ich den ersten Tag nicht mehr als 10 Posts absetzen, und dann hatte mich der Alltag auch schon wieder.

Also ich habe die Anleitgungen soweit es möglich war umgesetzt. Die Views einmal mit importiert, und auch ohne views die Daten importiert. Es erscheinen immer weitere neue Fehlermeldungen im Debug-Mode und auch in den Logdateien.

Vielen Dank für die schnelle und vielfältige Hilfestellung bei meinem Problem. So langsam übersteigt der Zeitaufwand jedoch den zu erwartenden Aufwand einer Neukonfiguration. Ich werde einen neuen Shop aufsetzen und die Artikeldaten aus dem Datenbankdump extrahieren und neu einspielen.