Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Gastkonto löschen

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Gastkonto löschen
    am: 19. Mai 2010, 14:37:22
    Hallo,

    ich habe den Eindruck, dass Gastkonten nicht gelöscht werden, obwohl die entsprechende Einstellung gesetzt wurde.
    Bedeutet dann immer manuell unter Kunden löschen.

    Habe dann als Ursache herausgefunden, dass Gastkonten erst gelöscht werden, wenn sich der Gast abmeldet und das werden wohl die wenigsten machen.
    Eigentlich sollte es sowas wie abmelden bei Gästen gar nicht geben, der Kunde will ja schließlich kein Kundenkonto haben. Doch durch sowas könnte genau der Eindruck entstehen, er hätte doch eines, obwohl er nicht wollte.

    Auf folgender Seite gibt es eine Lösung, die wohl von Hetfield noch optimiert / korrigiert wurde. [gelöst] Gastkonten zuverlässig löschen

    Zum Thema "Gastkonten löschen" empfehle ich noch diesen Beitrag, der sinnvoll beschreibt, warum man Gastkonten unbedingt löschen sollte. Löschen von Gastkonten: Ja oder nein?



    Linkback: https://www.modified-shop.org/forum/index.php?topic=5723.0

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Gastkonto löschen
    Antwort #1 am: 19. Mai 2010, 14:49:56
    Mir war so, als hätten wir das schon gefixt gehabt, aber ich frage nochmal die anderen, denn der Code ist im Trunk noch nicht enthalten.

    Grüße

    Torsten

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Gastkonto löschen
    Antwort #2 am: 19. Mai 2010, 15:07:42
    Man müsste evtl. auch noch abklären, was passiert, wenn das Kundenkonto durch den Code aus dem Link beim Checkout gelöscht wird und der Kunde dann doch ausnahmsweise auf "Abmelden" klickt.
    Der Kunde wäre ja dann schon gelöscht, erscheint dann eine Fehlermeldung oder wird was anderes gelöscht ?

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Gastkonto löschen
    Antwort #3 am: 19. Mai 2010, 23:24:51
    Sehr nützlicher Hinweis. Vielen Dank, speedy.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Gastkonto löschen
    Antwort #4 am: 19. Mai 2010, 23:33:47
    Wir hatten das gefixt, allerdings an falscher Stelle!

    Wir hatten den Fix in der logoff.php drin. :datz: :doh:

    Wird demnächst gefixt, vielen Dank für den Hinweis!

    Grüße

    Torsten

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Gastkonto löschen
    Antwort #5 am: 19. Mai 2010, 23:56:58
    Bitte, kein Problem.

    Allerdings ist Eure logoff.php noch zu 100% xt-commerce v3.04 SP2.1 - habe es mir gerade mit dem Dateivergleicher angesehen.

    Der Code vom Fix taucht in der logoff.php fast identisch auf, etwas anders "formatiert", da die anderen Kundengruppen an dieser Stelle noch betroffen sind. Man beachte deshalb die Klammern.

    Allerdings ist im Original noch das hier, was im Fix fehlt.

    Code: PHP  [Auswählen]
    $_SESSION['cart']->reset();
     
    Ich würde vorschlagen das hier aus der logoff.php zu entfernen, da man den Rest noch für die angemeldeten Kunden braucht:

    Code: PHP  [Auswählen]
    //delete Guests from Database  

    if (($_SESSION['account_type'] == 1) && (DELETE_GUEST_ACCOUNT == 'true')) {
            xtc_db_query("delete from ".TABLE_CUSTOMERS." where customers_id = '".$_SESSION['customer_id']."'");
            xtc_db_query("delete from ".TABLE_ADDRESS_BOOK." where customers_id = '".$_SESSION['customer_id']."'");
            xtc_db_query("delete from ".TABLE_CUSTOMERS_INFO." where customers_info_id = '".$_SESSION['customer_id']."'");
    }
     
    und das hier ans Ende der checkout_success.php einzufügen (Fix um eine Zeile kurz vor Ende erweitert):

    Code: PHP  [Auswählen]
    // BOF - Delete Guests from Database
    if (($_SESSION['account_type'] == 1) && (DELETE_GUEST_ACCOUNT == 'true')) {
       xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS." WHERE customers_id = '".$_SESSION['customer_id']."'");
       xtc_db_query("DELETE FROM ".TABLE_ADDRESS_BOOK." WHERE customers_id = '".$_SESSION['customer_id']."'");
       xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id = '".$_SESSION['customer_id']."'");
       xtc_session_destroy();
       unset ($_SESSION['customer_id']);
       unset ($_SESSION['customer_default_address_id']);
       unset ($_SESSION['customer_first_name']);
       unset ($_SESSION['customer_country_id']);
       unset ($_SESSION['customer_zone_id']);
       unset ($_SESSION['comments']);
       unset ($_SESSION['user_info']);
       unset ($_SESSION['customers_status']);
       unset ($_SESSION['selected_box']);
       unset ($_SESSION['navigation']);
       unset ($_SESSION['shipping']);
       unset ($_SESSION['payment']);
       unset ($_SESSION['ccard']);
       unset ($_SESSION['gv_id']);
       unset ($_SESSION['cc_id']);
       $_SESSION['cart']->reset();
       require (DIR_WS_INCLUDES.'write_customers_status.php');
    }
    // EOF - Delete Guests from Database
     

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Gastkonto löschen
    Antwort #6 am: 20. Mai 2010, 07:28:17
    Ist ab Version 899 im Trunk ;)

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Gastkonto löschen
    Antwort #7 am: 20. Mai 2010, 07:42:16
    Guten Morgen,

    prima danke, DokuMan.

    Wurde diese Zeile absichtlich ausgelassen ?

    Code: PHP  [Auswählen]
    $_SESSION['cart']->reset();
    Im Original-Code ist diese Zeile enthalten und diese gilt für alle Kundengruppen, also auch für Gäste. Im Fix von Hetfield fehlt diese aber.

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Gastkonto löschen
    Antwort #8 am: 20. Mai 2010, 07:59:14
    Damit wird der Warenkorb geleert, könnte ich noch mit aufnehmen...
    Ich weiß nicht, warum Hetfield diese Funktion weggelassen hat.

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Gastkonto löschen
    Antwort #9 am: 20. Mai 2010, 08:13:13
    Da fällt mir noch was ein. ;)
    Sollte man um diesen Teil in der logoff.php nicht noch eine If-Abfrage setzen, damit dieser nur bei Nicht-Gästen ausgeführt wird ?

    Code: PHP  [Auswählen]
    xtc_session_destroy();

    unset ($_SESSION['customer_id']);
    unset ($_SESSION['customer_default_address_id']);
    unset ($_SESSION['customer_first_name']);
    unset ($_SESSION['customer_country_id']);
    unset ($_SESSION['customer_zone_id']);
    unset ($_SESSION['comments']);
    unset ($_SESSION['user_info']);
    unset ($_SESSION['customers_status']);
    unset ($_SESSION['selected_box']);
    unset ($_SESSION['navigation']);
    unset ($_SESSION['shipping']);
    unset ($_SESSION['payment']);
    unset ($_SESSION['ccard']);
    // GV Code Start
    unset ($_SESSION['gv_id']);
    unset ($_SESSION['cc_id']);
    // GV Code End
    $_SESSION['cart']->reset();
    // write customers status guest in session again
    require (DIR_WS_INCLUDES.'write_customers_status.php');
     
    Ansonsten würde es 2x ausgeführt werden, wenn sich doch mal ein Gast dazu entscheidet auf "Abmelden" zu klicken.
    Weiß nicht was das für Folgen hat, wenn das unter Umständen 2x ausgeführt wird.

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Gastkonto löschen
    Antwort #10 am: 20. Mai 2010, 08:49:00
    Der Gast kann sich nach dem Checkout nicht mehr abmelden, von daher wird es nicht 2x ausgeführt.

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Gastkonto löschen
    Antwort #11 am: 20. Mai 2010, 08:55:01
    Doch der Gast muss sich abmelden können, wie auch hier steht:
    http://www.xtc-supportforum.de/viewtopic.php?f=8&t=1104&start=0

    Bislang war ja genau das das Problem. Nur, wenn sich der Gast abgemeldet hat, wurde das Gast-Konto gelöscht. Hat er sich nicht abgemeldet, blieb das Gast-Konto erhalten.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Gastkonto löschen
    Antwort #12 am: 20. Mai 2010, 20:45:06
    Achso... naja... stimmt eigentlich der Code hätte in der logoff.php eigentlich in r899 nicht auskommentiert werden müssen.

    Grüße

    Torsten

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Gastkonto löschen
    Antwort #13 am: 20. Mai 2010, 20:52:49
    Hallo Torsten,

    ne das war anders gemeint, als es glaub ich verstanden wurde.
    Das Problem war ja anfangs, dass nur die Gast-Kunden gelöscht wurden, die sich ordentlich abgemeldet haben, alle anderen blieben trotz Funktion "Gastkonten löschen" erhalten.

    So, dafür gibt es ja den Fix von Hetfield für die checkout_success.php
    ABER, damit es nicht doppelt gelöscht wird oder zumindest versucht wird, muss natürlich dann der Code in der logoff.php raus, da die Löscherei mit dem Fix ja schon in der checkout_success.php erledigt wurde.
    Doch der dann in der logoff.php verbleibende Code, siehe Beitrag Nr. 57741, ist ja ohne eine IF-Abfrage und gilt deshalb für alle Kundengruppen, also auch für Gäste.
    Somit würde dieser Code-Teil einmal in der checkout_success.php und noch einmal in der logoff.php ausgeführt werden, sobald sich ein Gast abmeldet.

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Gastkonto löschen
    Antwort #14 am: 27. Mai 2010, 14:24:06
    Mit Version r899 ist es so (kann gerne im Trunk-Demoshop nachgetestet werden):

    Besucher registriert sich als Gast, legt etwas in den Warenkorb und geht zur Kasse. Beim Bestellprozess wird nun das Gast-Konto beim dem Aufruf der "checkout_success.php" gelöscht und die Session refresht! Ein Ausloggen des Gastes ist nicht mehr erforderlich und auch gar nicht mehr möglich.

    Der Abmelden-Button ist dann für Gäste nicht mehr erreichbar. Vor der "checkout_success" kann sich der Gast allerdings abmelden. Tut er das, werden seine Daten jetzt NICHT mehr gelöscht!

    Die Frage ist vielmehr: was soll passieren, wenn ein Gast sich noch vor Bestellabschluss ausloggt? Mit dem derzeitigen Code wird er nicht mehr gelöscht, da er in der logoff.php auskommentiert wurde (DELETE TABLE...).

    6 Antworten
    2328 Aufrufe
    15. Mai 2018, 14:57:17 von sb_cbo-do
    2 Antworten
    3059 Aufrufe
    27. Oktober 2010, 09:25:12 von KiteFuchs
               
    anything