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: MODUL: E-Mail (Domain) Blacklist

    Spegeli

    • Schreiberling
    • Beiträge: 278
    • Geschlecht:
    MODUL: E-Mail (Domain) Blacklist
    am: 15. April 2011, 15:37:58
    Servus liebe Community,
    Ich bin zwar erst seit kurzem bei euch, möchte euch aber den noch heute mein Modul vorstellen, welches ich gestern gebaut habe.

    Mit diesem Modul ist es möglich, bestimmte E-Mail Anbieter (wie z.B. Trash-Mail Anbieter) bei der Registrierung zu sperren.

    Hier ein Screenshot:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Das Modul wurde in erster Linie gebaut, um bestimmte E-Mail Anbieter zu sperren, da es aber die gesamte E-Mail Addresse checkt, ist es auch möglich, bestimmte Wörter zu sperren wie z.b. A****loch, etc.

    Sobald das gesperrte Wort in der E-Mail Addresse vorkommt, erscheint eine Fehlermeldung.

    Das Modul dürfte fehlerfrei laufen (mir ist zumindest bisher noch keiner aufgefallen), aber in den nächsten Tagen werde ich bestimmt noch die ein oder andere Kleinigkeit ergänzen bzw. ändern (z.B. was die Sprachausgabe angeht).



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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    MODUL: E-Mail (Domain) Blacklist
    Antwort #1 am: 15. April 2011, 16:23:27
    Hi Spegeli,

    das ist ja mal eine coole Sache! Vielen Dank für's Teilen! :thx:

    Grüße

    Torsten

    h-h-h

    • modified Team
    • Beiträge: 4.562
    MODUL: E-Mail (Domain) Blacklist
    Antwort #2 am: 15. April 2011, 16:34:38
    [..]
    Schon sehr grenzwertig bezüglich Doppelpost, aber ich lass das Thema mal so stehen. :/ :mhhh:
    [..]

    Quelle: GROUP_CONCAT Abfrage (brauche Hilfe)

     :motz: Eine Rückmeldung wäre auch nicht schlecht gewesen.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    MODUL: E-Mail (Domain) Blacklist
    Antwort #3 am: 15. April 2011, 16:38:19
    Ja, da hast Du Recht, da hätte er ruhig mal eine Rückmeldung geben können. ;-)

    Dann Danke auch an Dich h-h-h für die Mithilfe beim Modul! :thx:

    Grüße

    Torsten

    Spegeli

    • Schreiberling
    • Beiträge: 278
    • Geschlecht:
    MODUL: E-Mail (Domain) Blacklist
    Antwort #4 am: 15. April 2011, 16:41:30
    Die Rückmeldung wäre gekommen, wenn das Forum net wieder 'nen halben Tag Offline gewesen wäre. ^^
    Bin gerade Heim gekommen, hab gesehen, dass das Forum wieder geht -> Modul veröffentlicht und jetzt muss ich auch gleich wieder weg. ^^

    EDIT Jetzt wollt ich gerade die Rückmeldung noch schreiben... was is... nur 1 Beitrag alle 30 Minuten. -_-

    [EDIT Tomcraft 15.04.2011: Full-Quote entfernt, siehe: FAQ: Full-Quotes und Groß-/Kleinschreibung - mit anderen Worten Netiquette!]

    h-h-h

    • modified Team
    • Beiträge: 4.562
    MODUL: E-Mail (Domain) Blacklist
    Antwort #5 am: 15. April 2011, 17:03:02
    FAQ: Full-Quotes und Groß-/Kleinschreibung - mit anderen Worten Netiquette!
    Nein ich habe nicht geholfen, im Code konnte ich GROUP_CONCAT nicht finden.

    Gruß

    h-h-h

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    MODUL: E-Mail (Domain) Blacklist
    Antwort #6 am: 15. April 2011, 20:02:56
    Sehr gute Idee mit dem Modul, danke sehr.

    Spegeli

    • Schreiberling
    • Beiträge: 278
    • Geschlecht:
    Re: MODUL: E-Mail (Domain) Blacklist
    Antwort #7 am: 04. Mai 2016, 06:03:13
    Nach über 5 Jahren (omg wie die Zeit vergeht) wird es mal wieder Zeit dieses Module aus zu graben und v2.0 tauglich zu machen.
    Der größte teilt (installieren, deinstallieren, hinzufügen, entfernen etc. funktioniert bereits alles), jetzt muss ich nur noch schauen wie ich folgendes am besten in v2.0 Integriere:

    Code: PHP  [Auswählen]
    In der Datei "create_account.php" nach

    require_once (DIR_FS_INC.'xtc_write_user_info.inc.php');

    folgendes einfügen:

    $edb_result = xtc_db_query("SELECT GROUP_CONCAT(blacklist_domain_name SEPARATOR '|') FROM " . TABLE_EMAIL_BLACKLIST . " ");
    $edb = mysql_result($edb_result,0);

    und nach:

    } elseif ($email_address != $confirm_email_address) {
        $error = true;    
        $messageStack->add('create_account', ENTRY_EMAIL_ERROR_NOT_MATCHING);

    folgendes:

    } elseif (preg_match("/".$edb."/", $email_address)) {
        $error = true;
        $messageStack->add('create_account', ENTRY_EMAIL_ERROR_DOMAIN_BLACKLIST);

    Tomcraft, h-h-h & Co.: Wie binde ich diesen Code am besten mit dem neuen Module System ein?
    Gibt es da eine Möglichkeit ohne direkt Veränderungen an der create_account.php vornehmen zu müssen?!

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: MODUL: E-Mail (Domain) Blacklist
    Antwort #8 am: 04. Mai 2016, 11:22:04
    Es sind noch nicht alle Dateien mit dem neuen "auto_include" System ausgestattet und diese gehört dazu.

    Grüße

    Torsten

    webald

    • modified Team
    • Beiträge: 2.791
    Re: MODUL: E-Mail (Domain) Blacklist
    Antwort #9 am: 04. Mai 2016, 14:58:52
    Was hältst Du davon den Code vorwegzunehmen?

    In application_top könntest Du über das Verzeichnis includes/extra/application_top/application_top_end eine Datei einbinden und prüfen wie der Name des Browseraufrufs lautet und wenn der create_account.php ist, dann prüfst Du erst ob die Email in der Liste ist und setzt ggf. gleich den Fehler.

    Spegeli

    • Schreiberling
    • Beiträge: 278
    • Geschlecht:
    Re: MODUL: E-Mail (Domain) Blacklist
    Antwort #10 am: 04. Mai 2016, 17:08:06
    @webald: Danke dir für den Tip. Hab es zum laufen gebracht ;-)
    So sieht mein Code aktuell aus:
    Code: PHP  [Auswählen]
    <?php
        // eMail Blacklist - (c) Copyright 2008-2016 by Spegeli - www.Spegeli.de
        // only original from https://www.modified-shop.org/forum/index.php?topic=12360.0
     
        if (defined('MODULE_EMAIL_BLACKLIST_STATUS') && MODULE_EMAIL_BLACKLIST_STATUS == 'true') {
            // load blacklist
            $email_blacklist_query = xtc_db_query("SELECT GROUP_CONCAT(blacklist_name SEPARATOR '|')
                                                   FROM "
    .TABLE_EMAIL_BLACKLIST."");      
                                                   
            if (xtc_db_num_rows($email_blacklist_query) > 0 && ($_SERVER["REQUEST_URI"] == "/create_account.php" OR $_SERVER["REQUEST_URI"] == "/create_guest_account.php")) {
                $fetch = xtc_db_fetch_array($email_blacklist_query);
                foreach ($fetch as $key => $value) {
                    //echo $value."<br />";
                }
                $email_address = (isset($_POST['email_address']) ? $_POST['email_address'] : '');
                if (preg_match("/".$value."/i", $email_address)) {         
                    $error = true;
                    $messageStack->add('create_account', ENTRY_EMAIL_ERROR_DOMAIN_BLACKLIST);      
                }        
            }

        }
    ?>
    Hat jemand noch verbesserungs Vorschläge? ^^ oder kann man den Code so stehen lassen?

    //Edit: Wenn ich
    Code: PHP  [Auswählen]
    if (preg_match("/".$value."/i", $email_address, $treffer)) {  
    benutze, kann ich mir mit $treffer[0] den treffer anzeigen lassen.
    Wie bekomme ich den nun aber in mit in die Error Meldung? ^^