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: SPAM-Kunden-Profile per SQL löschen

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: SPAM-Kunden-Profile per SQL löschen
    Antwort #15 am: 25. Januar 2021, 01:11:49
    Hallo Hajosch,

    es hat sich nun leider gezeigt, dass diese Liste hier -> https://www.modified-shop.org/wiki/Kunden_löschen, bezüglich der bei Kundenlöschungen zu berücksichtigenden Tabellen, nicht aktuell ist, deshalb musste ich die Prozedur noch ein weiteres mal überarbeiten. Ich hoffe das der folgende Code jetzt aber tatsächlich final ist.

    Code: SQL  [Auswählen]
    DELIMITER $$
    DROP PROCEDURE IF EXISTS DeleteFakeCustomers $$
    CREATE PROCEDURE DeleteFakeCustomers(IN cid VARCHAR(1024))
    BEGIN
      DELETE FROM address_book WHERE FIND_IN_SET(customers_id, cid);
      DELETE FROM customers WHERE FIND_IN_SET(customers_id, cid);
      DELETE FROM customers_basket WHERE FIND_IN_SET(customers_id, cid);
      DELETE FROM customers_basket_attributes WHERE FIND_IN_SET(customers_id, cid);
      DELETE FROM customers_info WHERE FIND_IN_SET(customers_info_id, cid);
      DELETE FROM customers_ip WHERE FIND_IN_SET(customers_id, cid);
      DELETE FROM customers_memo WHERE FIND_IN_SET(customers_id, cid);
      DELETE FROM customers_status_history WHERE FIND_IN_SET(customers_id, cid);
      IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'customers_wishlist') THEN
        DELETE FROM customers_wishlist WHERE FIND_IN_SET(customers_id, cid);
        DELETE FROM customers_wishlist_attributes WHERE FIND_IN_SET(customers_id, cid);
      END IF;
      IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'customers_dsgvo') THEN
        DELETE FROM customers_dsgvo WHERE FIND_IN_SET(customers_id, cid);
      END IF;
    END $$
    DELIMITER ;

    CALL DeleteFakeCustomers('2,3,4');
     

    Gruss
    Hanspeter

    Hajosch

    • Neu im Forum
    • Beiträge: 17
    Re: SPAM-Kunden-Profile per SQL löschen
    Antwort #16 am: 26. Januar 2021, 16:43:04
    Hallo Hanspeter und alle anderen, die mir in den letzten Tagen hier netterweise Tipps zur Lösung des Problems der Spam-Kunden-Profile gegeben haben. Ich werde mal in den nächsten Tagen die einzelnen Lösungsvorschläge, die ihr mir gegeben habt, testen und gebe dann noch mal eine Rückmeldung, welche Lösungsvariante sich bei mir als optimal herausgestellt hat.

    Danke und Gruß an alle!

    Hajosch

    kaisa

    • Schreiberling
    • Beiträge: 365
    Re: SPAM-Kunden-Profile per SQL löschen
    Antwort #17 am: 27. Januar 2021, 01:34:03
    Danke. Interessantes Konstrukt.

    Und wie kann man einen ganzen Bereich von Spammeranmeldungen löschen? Ein Bot hat bei mir 150 Konten angelegt. Zum Glück nur einmalig.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: SPAM-Kunden-Profile per SQL löschen
    Antwort #18 am: 28. Januar 2021, 16:54:54
    Falls mit "ganzen Bereich von Spammeranmeldungen" Fake Accounts mit aneinanderreihenden customers_id's gemeint sind kannst du es mit folgendem Statement versuchen, wobei du (2,3) in der letzten Zeile durch die niedrigste bzw. höchste zu löschende customers_id erstzt.

    Code: SQL  [Auswählen]
    DELIMITER $$
    DROP PROCEDURE IF EXISTS DeleteFakeCustomers $$
    CREATE PROCEDURE DeleteFakeCustomers(IN cid INT, IN cid2 INT)
    BEGIN
      DELETE FROM address_book WHERE customers_id BETWEEN cid AND cid2;
      DELETE FROM customers WHERE customers_id BETWEEN cid AND cid2;
      DELETE FROM customers_basket WHERE customers_id  BETWEEN cid AND cid2;
      DELETE FROM customers_basket_attributes WHERE customers_id BETWEEN cid AND cid2;
      DELETE FROM customers_info WHERE customers_info_id BETWEEN cid AND cid2;
      DELETE FROM customers_ip WHERE customers_id BETWEEN cid AND cid2;
      DELETE FROM customers_memo WHERE customers_id BETWEEN cid AND cid2;
      DELETE FROM customers_status_history WHERE customers_id BETWEEN cid AND cid2;
      IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'customers_wishlist') THEN
        DELETE FROM customers_wishlist WHERE customers_id BETWEEN cid AND cid2;
        DELETE FROM customers_wishlist_attributes WHERE customers_id BETWEEN cid AND cid2;
      END IF;
      IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'customers_dsgvo') THEN
        DELETE FROM customers_dsgvo WHERE customers_id BETWEEN cid AND cid2;
      END IF;
    END $$
    DELIMITER ;

    CALL DeleteFakeCustomers(2,3);

    Gruss
    Hanspeter
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
    4 Antworten
    4271 Aufrufe
    06. Januar 2017, 10:55:40 von ambi
    4 Antworten
    13164 Aufrufe
    26. Januar 2017, 12:18:26 von Jonas
    16 Antworten
    8887 Aufrufe
    11. Oktober 2018, 13:53:31 von 0815
    1 Antworten
    1508 Aufrufe
    16. Juni 2021, 14:20:24 von hbauer
               
    anything