Adressdaten vom Gastbesteller in plözlich in den Adressdaten nach Kundenlogin?

  • Hallo Forum,
    kann Bitte mal jemand folgendes Problem in seinem Shop Überprüfen wenn er sie selbe Konfiguration Joomla! 2.5.20 - VirtueMart 2.6.2 (optional eventuell mit age_verification ab 18Jahre) hat?


    Ich weiß nicht, ob es nur bei mir so ist oder ob es ein generelles Problem ist.


    In unserem Shop kann man sich entweder Registrieren oder als Gast bestellen.


    Problem:
    Wenn jetzt jemand als Gast bestellt, Artikel in Warenkorb, Adresse eingeben, Bestellung Abschließen, fertig – alles OK.
    Wenn sich danach sofort jemand (Userkonto oder Admin, ist egal) im Frontend anmeldet und seine Adressdaten ändern will (VirtueMart Kontenpflege) stehen plötzlich die Adressdaten des GASTES von gerade eben statt die eigenen in den Feldern (in der Datenbank natürlich nicht).
    Geht das anderen auch so?


    Vielen Dank im Voraus
    Johan


    P.S. Nachtrag: Hab's langsam raus woran es liegt. Bei einer Gastbestellung werden die Cookies nicht gelöscht. Ich habe gerade als Gast bestellt, alle Cookies gelöscht, mich eingeloggt und die Adresdaten waren die richtigen. Leider kann ich ja aber nicht generell nach Bestellende die Cookies löchen, da eingeloggte Benutzer dann ja ausgeloggt werden. Hat jemand eine Idee wo das im Code steht?

  • Ok, hab's selber gelöst bekommen. Hier für alle, die das selbe Problem haben sollten, ich habe aus der session.php ein session_destroy für nicht eingeloggte Besteller eingefügt.


    Im Override der com_virtuemart/cart/order_done.php folgenden code einfügen:


    if(JFactory::getUser()->guest) {
    //wenn nicht eingeloggt
    if ($this->_state === 'destroyed')
    {
    return true;
    }

    // In order to kill the session altogether, such as to log the user out, the session id
    // must also be unset. If a cookie is used to propagate the session id (default behavior),
    // then the session cookie must be deleted.
    if (isset($_COOKIE[session_name()]))
    {
    $config = JFactory::getConfig();
    $cookie_domain = $config->get('cookie_domain', '');
    $cookie_path = $config->get('cookie_path', '/');
    setcookie(session_name(), '', time() - 42000, $cookie_path, $cookie_domain);
    }

    session_unset();
    session_destroy();

    $this->_state = 'destroyed';


    }
    else {
    //wenn eingeloggt
    }

  • Dieses Verhalten taucht beim Testen auf, wenn man vom gleichen Rechner aus auf die Seiten zugreift.


    In der Realität besteht sicher kein Problem, die Änderung im Code dürfte sogar je nach Bedarf eher kontraproduktiv sein, falls man nach dem Kauf noch angemeldet bleiben möchte.


    Vielleicht überprüfst Du das noch einmal.


    So long
    Stefan

  • Danke für den Hinweis, die Chance ist minimal, stimmt, aber ich habe die Angst das wenn jemand im Internetcafe bestellt und der Nachfolgende auch, ist der Datenschutz im Eimer....so gehe ich einfach auf Nummer sicher.

  • Servus Johan23,
    du hast es erfasst. Das ist tatsächlich in der Realität der einzige Fall, bei dem das ein Problem darstellt. Naja Büro und ähnliches ginge auch. Allerdings nützt dein Vorgehen nicht wirklich etwas. Denn wenn jemand im Internet cafe sich nicht ausloggt, so begeht er einen schweren Fehler. Zudem begeht sogar das Internet cafe einen Fehler, da es nach dem Bezahlen sicherstellen sollte, das die Person ausgeloggt wurde (bzw macht das üblicherweise sogar direkt die Kasse). Zudem falls diese Person den Fehler macht, wurde zwar der letzte Einkauf eventuell geschützt, aber wer sagt denn, dass sie dann einfach aufsteht und geht. Wahrscheinlicher ist, dass derjenige in den email account geht und seine mails checked, etc. Wir können nicht auf dieser Ebene argumentieren, das machen nichtmal die Banken. Letzendlich wird es in 99.99% der Fälle als Fehler empfunden werden und wenn nicht, dann schützt es auch nicht wirklich.