Mailadresse Prüfen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abschicken
adresse
array
bedingung
code
detail
domain
email
endung
fehler
guter ansatz
haken
http
kleinschreibung
menge
packen
position
schleife
string
test
-
Hallo ich möchte Prüfen ob die eingegebene Mailadresse eine Wegwerfadresse von rtrtr.com sinnlos-mail.de oder anderen Seiten ist.
Wie geht das? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das kannst du im grunde ganz leicht machen in dem du eine if Bedingung zwischen schaltest:
if ($email != "UNERWÜNSCHTE ADRESSE" or $email != "UNERWÜNSCHTE ADRESSE"){ Code zum abschicken der email } else{ echo "Die Angegebene Mail-Adresse wird nicht unterstützt"; }
Das "UNERWÜNSCHTE ADRESSE" durch die Email Adressen ersetzten, du kannst nathürlich noch mehr Adresse anhängen.
Es wäre vielleicht auch sinnvoll die Unerwünschten Adressen vorher in Variablen zu packen.
Beitrag zuletzt geändert: 19.7.2012 19:55:42 von jhb -
Ich würde es eher über die Funktion strpos machen und zwar die E-Mail-Endungen in ein array packen und dann durch eine foreach schleife packen.
<?php $string = "test@addy1.de"; // array mit den E-Mail-Endung hier können alle benötigten angefügt werden $test = array( "@addy1.de", "@addy2.de", "@addy3.de", "@addy4.de", "@addy5.de" ); // hier wird jedes Arrayelement nacheinander in die Variable $var geschrieben und über strpos geguckt ob er in $string vorkommt foreach($test As $var) { $erg = stripos($string, $var); // <--- Hier war ein Fehler !!!!! Es muss stripos heißen // Prüfung ob einer der Anhänge übereinstimmt strpos liefert eine position zurück oder false für kommt nicht vor if($erg !== false) { $meldung = "$string ist eine nicht erlaubte E-Mail-Adresse: $var."; } } ?>
Beitrag zuletzt geändert: 22.7.2012 14:55:58 von vctb -
strpos() und simple if != Vergleiche wurden schon genannt. Daher von mir der Vollständigkeit halber noch der Hinweis auf preg_match() wo du mit RegEx das ganze auf jedes Detail durchkämmen kannst.
http://php.net/manual/de/function.preg-match.php -
Ich habe gerade einen Fehler in meinem Script gefunden. Die Benutzung von strpos funktioniert zwar, hat aber leider einen Haken.
strpos ist Casesensitive, es unterscheidet zwischen Groß- und Kleinschreibung, deshalb sollte in diesem Fall stripos() benutzt werden, da es Groß- Kleinschreibung ignoriert! Ich habe meinen Code darauf hin angepasst.
Beitrag zuletzt geändert: 22.7.2012 15:00:06 von vctb -
@vctb Mit array ist es schon ein guter Ansatz, aber das foreach ist hier sehr ineffektiv. Lass PHP die Arbeit machen.
<?php $string = "test@addy1.de"; $geteilt = explode ('@', $string); //$geteilt[1] enthält die domain die geprüft werden soll $geteilt[1] = strtolower ($geteilt[1]); //alles klein // array mit den E-Mail-Endung hier können alle benötigten angefügt werden $gesperrte = array( "addy1.de", "addy2.de", "addy3.de", "addy4.de", "addy5.de" ); if (in_array ($geteilt[1], $gesperrte)) echo 'Domain ist gesperrt'; else echo 'Alles ok'; ?>
Beitrag zuletzt geändert: 22.7.2012 15:31:06 von chatter -
Bei der Abfrage hast du aber das Problem das in_array Groß-Kleinschreibung unterscheidet!!
also muss man E-MAIL.DE und e-mail.de beide überprüfen, bzw alle Varianten... E-Mail.de, usw.
Das ist dann seeeehr Speicherintensiv...
Beitrag zuletzt geändert: 22.7.2012 15:46:01 von vctb -
Ich habs vorhin gleich noch mit strtolower korrigiert :)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage