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']));