Vorbemerkung: Ab der neuen Version 3.0.0 wird dieses Problem gelöst sein. Wir empfehlen bei älteren Versionen nach Möglichkeit ein Update, sobald dieses verfügbar ist.
Für alle Versionen vor Version 3.0.0:
Einige Webserver bedürfen auf Grund ihrer Session Konfiguration einer kleinen Anpassung im Code. Betroffen ist die Datei modules/shop/index.class.php, ca. ab Zeile 88:
function shopUseSession() { if (!empty($_COOKIE['PHPSESSID'])) { return true; } elseif (!empty($_REQUEST['currency'])) { return true; } else { $command = ''; if (!empty($_GET['cmd'])) { $command = $_GET['cmd']; } elseif (!empty($_GET['act'])) { $command = $_GET['act']; } if (in_array($command, array('', 'discounts', 'details', 'terms', 'cart'))) { if ( $command == 'details' && isset($_REQUEST['referer']) && $_REQUEST['referer'] == 'cart' ) { return true; } elseif ( $command == 'cart' && ( isset($_REQUEST['productId']) || ( isset($_GET['remoteJs']) && $_GET['remoteJs'] == 'addProduct' && !empty($_GET['product'])))) { return true; } return false; } else { return true; } } }
Ersetzen Sie diese Methode einfach durch
function shopUseSession() { return true; }
Dies erzwingt, dass die Session auf jeder Shop Seite und in jedem Fall initialisiert wird.
Falls danach bei der Anmeldung bestehender Kunden weiterhin Probleme auftreten, überprüfen Sie in derselben Datei (modules/shop/index.class.php), ca. Zeile 2923, in der Methode login():
if (!empty($_REQUEST['username']) && !empty($_REQUEST['password'])) { // check authentification $_SESSION['shop']['username'] = htmlspecialchars( addslashes(strip_tags($_REQUEST['username'])), ENT_QUOTES, CONTREXX_CHARSET); $_SESSION['shop']['password'] = addslashes(strip_tags($_REQUEST['password']));
Falls in diesem Abschnitt das Array $_REQUEST verwendet wird, ersetzen Sie ihn durch
if (!empty($_POST['username']) && !empty($_POST['password'])) { // check authentification $_SESSION['shop']['username'] = htmlspecialchars( addslashes(strip_tags($_POST['username'])), ENT_QUOTES, CONTREXX_CHARSET); $_SESSION['shop']['password'] = addslashes(strip_tags($_POST['password']));
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren