Woocommerce Login & Einkaufswagen funktionieren nicht mehr?
Hi, auf meiner Webseite (mr-mystery.net) funktionieren seitdem ich alles auf einen neuen Server übertragen habe der Login über Woocommerce sowie der Einkaufswagen nicht mehr. Der Login über wp-login.php funktioniert weiterhin einwandfrei. Über den Mein Konto Login (Woocommerce) passiert nach einem Klick auf anmelden nichts. Wenn ich auf ein Produkt in den Einkaufswagen lege passiert ebenfalls nichts.
Ich habe so gut wie alles ausprobiert. Plugins und Theme deaktivieren, Woocommerce zurücksetzen, htaccess Datei neu erstellen lassen sowie viele weitere Tipps. Der Hoster kann mir auch nicht weiterhelfen.
Vor dem Serverwechsel funktionierte alles perfekt, der Hoster hat mir aber versichert, dass auf beiden Servern die exakt gleiche Plesk Version läuft.
PHP Versionen identisch, Plugins alle untereinander kompatibel und auf dem neusten Stand. Habe keine Idee mehr was ich noch tun soll.
Problem ist geklärt. Der Hoster (Zap-Hosting) hat mir verschwiegen, dass auf dem Server kein Apache aktiviert ist. Dies wurde nun aktiviert und alles klappt.
- Gibt dir die Browserkonsole bei Klick Fehler/Warnungen aus?
- Hast du bereits in die Log-Dateien bezüglich Fehlermeldungen geschaut?
- Nein, keine
- Darin findet sich leider auch nichts brauchbares, die letzte Meldung da ist von vor 5 Tagen und die Seite ist erst Seit gestern auf dem neuen Server.
Wie hast du die Seite migriert?
Alle Dateien per FTP runtergeladen und auf neuen Server hochgeladen. Datenbank kopiert und auf neuem Server eingefügt. Zugangsdaten entsprechend in der WP-Config angeglichen.
2 Antworten
Lösch mal alle Cookies im Browser bzw. verwende den privaten Modus (Firefox: Strg + Shift P, Chrome N statt P drücken)
Wenn du dich im Backend einloggen kannst dann geh auf Settings -> Permalinks und dort einfach nur auf Speichern. Das hilft oftmals nach einem Umzug.
Wenn das nicht hilft ein Datenbank-Bereinigungsplugin installieren. Das löscht die temporären Datenbank Einträge (Sessions etc.)
Wenn das alles nicht hilft bzw. Du dich auch ins Backend nicht einloggen kannst entweder den wp-plugins Ordner umbenennen, damit deaktivierst du automatisch alle Plugins oder in der options-Tabelle den value bei der Einstellung 'active_plugins' löschen (nur das was in der Spalte value steht, NICHT die ganze Zeile).
Wenn das auch nicht hilft am besten nochmal die Migration machen aber das Plugin "Duplicator" verwenden. Mit dem funktioniert eigentlich jede Migration
Du brauchst es nur installieren und ein Paket erstellen. Duplicator packt dann alle Dateien sowie die komplette Datenbank in das Paket. Am neuen Server lädst du dann nur das Paket + die Installer.php Datei hoch. Rufst die Installer.php Datei auf und folgst den Anweisungen.
Hab noch keine Website gesehen, wo nach einer Duplicator Migration irgendetwas nicht funktioniert hat und ich habe wirklich stark angepasste Wordpress Instanzen damit migriert. Das ist ein unfassbar gutes Tool.
Wie rufe ich die php Datei auf? Ich habe auf den Webspace ja keinen SSH Zugriff.
Habe die Seite migriert mit Duplicator. Ich kann mich nun aber nicht mal mehr über wp-login.php einloggen geschweige denn über Woocommerce. Fehlermeldungen gibt es keine bis auf diese hier: SERIALIZATION NOTICES (1)
Notices should be ignored unless issues are found after you have tested an installed site. The SQL below will show data that may have not been updated during the serialization process. Best practices for serialization notices is to just re-save the plugin/post/page in question.
DATA-REPLACE ERROR: Serialization
ENGINE: serialize data serial check error
DATA: a:31:{s:32:"a8ea451ccfcdcf8521e830cc44297b56";O:32:"Elementor\Core\Logger\Items\Base":7:{s:7:"*date";s:19:"2021-05-28 04:09:23";s:7:"*type";s:4:"info";s:10:"*message";s:50:"Elementor data [...]
TABLE:UDGFBIJ_options COLUMN: option_value WHERE: `option_id` = "11616"
Update: Über wp-login.php komme ich rein, über den Woocommerce Login nach wie vor nicht
Hast du deinen DNS Eintrag überhaupt umgestellt? Weder via mr-mystery.de noch über www.mr-mystery.de komme ich auf eine Wordpress-Seite. Das würde auch Probleme beim Login erklären.
Ansonsten wäre interessant was in dem fehlerhaften Options Eintrag steht, du kannst ja mal folgendes SQL Statement auf der Datenbank ausführen:
select * from UDGFBIJ_options where option_id = '11616'
Sorry die Adresse ist mr-mystery.net nicht .de. Ergebnis der Abfrage zu lang, daher Pastebin: https://pastebin.com/z0d1rrev
"�*�date";s:19:"2021-06-17 04:12:11";s:7:"�*�type";
Ist ein Auszug aus dem Pastebin. Wird das in der Datenbank genauso angezeigt? Dann wäre nämlich klar woran es liegt. Die Datenbank hat nicht den korrekten Zeichensatz ausgewählt.
Schau mal nach was in der wp-config.php (im Hauptverzeichnis) steht. Dort gibt es vermutlich schon Einträge wie diese:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_general_ci');
Die equivalenten Werte nimmst du dann auch für die Datenbank.
Wenn es UTF8 ist, dann nimmst du
CHARACTER SET utf8
COLLATE utf8_general_ci
Bei allen anderen kann man googeln, was das Datenbank-Equivalent ist.
Bei dem Befehl CHARACTER SET utf8 wird mir ein rotes X angezeigt mit der Beschriftung ,,Unerkannte Statement-Typ (bei Character Set). Über die Konsole kommt das:
FehlerStatische Analyse:
1 Fehler wurden während der Analyse gefunden.
- Unerkannte Statement-Typ. (near "CHARACTER SET" at position 0)
SQL-Befehl: Kopieren
CHARACTER SET utf8
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'CHARACTER SET utf8' in Zeile 1
Kann aber in php MyAdmin über ,,Operationen" auf utf8_general_ci ändern. Funktioniert leider immer noch nicht :(
Du musst die Daten natürlich neu einspielen. Die Datensätze sind ja durch das falsche Encoding nicht nutzbar.
In der alten Datenbank aus der ich die Daten übernehme sieht das aber genau so aus. Da funktioniert aber ja alles. Die Codierung war übrigens davor schon auf utf8_general_ci
Übrigens: An der Stelle define('DB_COLLATE', 'utf8_general_ci'); in der config war nichts eingetragen also define('DB_COLLATE', ' ');. Ich habe dann utf8_general_ci eingetragen und es übernommen, ist das richtig?
Das überrascht mich. Sind in der alten Datenbank auch Einträge mit falscher Codierung? Weil dann hat der Fehler schon früher bestanden, aber scheinbar keine Probleme gemacht.
Eigentlich sollte das bei UTF8 nicht passieren.
Übrigens: An der Stelle define('DB_COLLATE', 'utf8_general_ci'); in der config war nichts eingetragen also define('DB_COLLATE', ' ');. Ich habe dann utf8_general_ci eingetragen und es übernommen, ist das richtig?
Grundsätzlich ist es egal, weil eh utf8 in Verwendung war. Kritisch ist das nur wenn man eben etwas anderes verwendet.
Das überrascht mich. Sind in der alten Datenbank auch Einträge mit falscher Codierung? Weil dann hat der Fehler schon früher bestanden, aber scheinbar keine Probleme gemacht.
Ja, in der alten Datenbank sieht der Eintrag genau so aus, ebenfalls mit falscher Codierung. Das seiht für mich aber nach einem Eintrag für das Elementor Plugin aus ( ich kenne mich leider auch nicht 100% aus also falls das nicht stimmt bitte korrigieren). Ich habe aber ja alle Plugins bis auf Woocommerce deaktiviert gehabt und es hat immer noch funktioniert. Wie kann das sein?
Ok, dann ist der Fehler nur Zufall und ist von Duplicator einfach nur bemerkt worden aber hat keine Auswirkungen.
Was passiert denn wenn du WooCommerce auch deaktivierst? Kannst du dich dann normal anmelden?
Ja die normale Anmeldung funktioniert ja immer (wp-login.php) aber dann kann ich mich natürlich auch nicht über Woocommerce anmelden weil es je deaktiviert ist. Also macht keinen Unterschied. :/
Dann installier mal WooCommerce neu. Einfach das Plugin aus dem Ordner löschen und dann wieder installieren. Einstellungen bleiben erhalten weil das alles in der Datenbank hinterlegt ist
Funktioniert leider immer noch nicht. Habe Woocommerce komplett neu installiert.
Hey, hast du vielleicht noch irgendeine Idee? Mir fällt echt nichts mehr ein :(
Ich muss mal am PC drüberschauen. Da kann ich die Seite mal anschauen, vom Handy geht das nicht ordentlich
Hab das ganze in XAMPP eingerichtet localhost und da funktioniert alles perfekt. Liegt also mit Sicherheit am Server.
Problem gelöst - Siehe Fragenergänzung
Wie gesagt habe ich das mit den Plugins bereits gemacht gehabt, hat nichts gebracht. Hab natürlich Cookies gelöscht etc.. Das Permalink Ding hatte ich auch schon gemacht. Was für ein Bereinigungsplugin empfiehlst du denn?
Wie gesagt, ins Backend komme ich über wp-login.php
Moin,
php Scripte verfügen über einen debug Modus, schalte den mal ein und schau, welche Fehlermeldung es gibt. Hierzu im FTP Clienten die index.php einsehen. ganz oben sollte der Eintrag stehen. Den von 0 auf 1 stellen.
Ansonsten mal die Datenbankeinträge nachsehen, ob was fehlt. Evtl. Datenbankname falsch. Es gibt zig Möglichkeiten, woran es liegt. auch alle php Datein kontrollieren, manchmal passieren seltsame Dinge beim Wechsel, Habe ich selbst schon erlebt, dass Dateien verschwunden waren. Ist leider eine Sisyphusarbeit.
Grüsse von katzebiggi
Hey, erstmal danke für die Antwort. Die index.php sieht bei mir so aus:
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
Bei mir ist da irgendwie keine 0 oder muss ich die 1 einfach am Anfang dazu schreiben? Datenbankpfad ist korrekt da alles andere auch über die funktioniert.
Nein, dann such mal in der WIKI von wp oder woocommerce nach dem Debug Modus. Der ist überall unterscheidlich. Habe leider kein wp auf dem PC.
Scheck mal ob alle Tabellen vorhanden snd, die vorher auch da waren.
Datenbank vorher hatte 91 Tabellen und auf dem neuen Server immer noch. Es sind nur auf dem neuen 5mb mehr Dateigröße geworden. Debug Mode ist nun aktiviert.
Probier mal in Plesk verschiedene php Versionen und check ob allow_url_fopen auf on steht. Bei diesen Einstellungen gibt es auch display errors, das steht normal auf off, kannst zum Testen auf on stellen. Vielleicht hilft's
Leider funktioniert es mit keiner der php Versionen. allow_url_fopen ist auf on. display errors kann ich leider nicht auf on stellen. Das wird wohl vom Hoster blockiert oder so. Ich kann da keine Einstellungen ändern bis auf die Version. Es wird auch kein Error Log im Wp-content Ordner erstellt.
Dann schreib den Hoster an, er solls aktivieren, Komisch, meine Kunden können das.
Hab schon mit dem geschrieben, der meint so etwas fällt nicht in den Support Bereich. ,,Hi woof,
leider nein, tut mir leid.
Wir können dafür aber auch generell leider keinen Support anbieten, wie beschrieben. : /
Das ganze liegt leider außerhalb unseres Supportbereiches.""
Hab mir so ein Error Plugin installiert, trotzdem bleibt der Log leer
Dann haste dir den falschen Hoster ausgesucht. Meine Kunden lass ich nicht im Regen stehen.
Hab es aktiviert bekommen. Den Hoster hab ich seit 3 Jahren, wechseln geht jetzt auch nicht mehr so einfach. Es wurde ein Fehler mit dem Facebook for Woocommerce Plugin angezeigt. Hab das dann gelöscht, leider ist das Problem nach wie vor da. Die Fehlermeldung ist aber weg.
Es ist nicht möglich etwas zu diagnostizieren, wenn man nicht selbst davor sitzt. Leider kann ich dir damit nicht weiter helfen.
Und wie funktioniert das mit dem Duplicator Plugin? Wie können damit auf einen anderen Server die Datenbanken mitgenommen werden usw.?