php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.08.2007, 09:44  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard eMail-Adresse auf Korrektheit überprüfen

Mit folgendem regulären Ausdruck kann man überprüfen, ob eine eMail-Adresse, die in einem Formular oder so eingegeben wurde, zumindest vom Aufbau her (hat es ein @ etc) korrekt ist:

Code:
^[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+$
Das ganze einfach mit PHP: preg_match - Manual oder mit PHP: eregi - Manual auf den String mit der eMail-Adresse anwenden und schauen, ob true oder false rauskommt!

Gruss
Montellese ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.08.2007, 10:40  
Administrator
 
Registriert seit: 28.07.2007
Beiträge: 945
hoefti hat die Renommee-Anzeige deaktiviert
Standard

Hallo Montellese

Es gibt dazu eine fertige Funktion

PHP-Code:
function check_email($email) {
    if(!
ereg("^[^@]{1,64}@[^@]{1,255}$"$email)) {
        return 
false;
    }
    
$email_array explode("@"$email);
    
$local_array explode("."$email_array[0]);
    for (
$i 0$i sizeof($local_array); $i++) {
        if(!
ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"$local_array[$i])) {
            return 
false;
        }
    }
    if(!
ereg("^\[?[0-9\.]+\]?$"$email_array[1])) {
        
$domain_array explode("."$email_array[1]);
        if(
sizeof($domain_array) < 2) {
            return 
false;
        }
        for(
$i 0$i sizeof($domain_array); $i++) {
            if(!
ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$"$domain_array[$i])) {
                return 
false;
            }
        }
    }
    return 
true;

Nun die Überprüfung
PHP-Code:

if(check_email($email) == false
        {
// Mail Adresse fehlerhaft
        
}
else
        {
// Mail Adresse valid

hoefti ist offline   Mit Zitat antworten
Alt 03.08.2007, 10:48  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Naja die ist aber ziemlich lange ^^

PHP-Code:
function check_email($email)
{        
    if(
preg_match('/^[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+$/i'$email) return true;
    
    return 
false;

Es frag sich nur, ob es sich für diese eine if-Abfrage lohnt, extra eine Funktion zu definieren! Deshalb hab ich einfach die RegExp angegeben!

Und die Aussage "Es gibt dazu eine fertige Funktion" heisst für mich eigentlich, dass es eine fixe PHP Funktion gibt, die man nicht selber definieren muss! Natürlich "gibt es dazu eine fertige Funktion", wenn ich sie selber geschrieben habe ^^ aber von dieser fertigen Funktion hat einer, der sich PHP gerade runtergeladen und installiert hat, nichts....
Aber is ja eigentlich egal ^^ Jetzt kann man zwischen 2 Scripts aussuchen

EDIT: Btw, deine Überprüfung wird einen Fehler ausgeben, da die Funktion "comment_email" nicht existiert

Gruss
Montellese ist offline   Mit Zitat antworten
Alt 03.08.2007, 18:32  
Administrator
 
Registriert seit: 28.07.2007
Beiträge: 945
hoefti hat die Renommee-Anzeige deaktiviert
Standard

Da hast du natürlich recht, ich hätte es anders ausdrücken können.
Allerdings sind Codeschnipsel etwas ziemlich wichtiges, nur wird leider immer wieder vergessen sie "fertig" anzugeben oder mit einem Bug wie in meinem Fall

PHP Anfänger haben es nämlich recht schwer die Manuals auf ihre Anforderungen umzusetzen.
hoefti ist offline   Mit Zitat antworten
Alt 16.12.2007, 19:12  
Erfahrener Benutzer
 
Registriert seit: 12.12.2007
Beiträge: 137
TeazY befindet sich auf einem aufstrebenden Ast
TeazY eine Nachricht über ICQ schicken TeazY eine Nachricht über MSN schicken
Standard

Das ganze in eine Funktion zu schrieben macht doch schon sinn wenn man eine communitypage hat oder? Kommt doch sicher öfters vor das man die email adresse überprüfen muss. Beispiele wären da: Registrierungsformular, Gästebuch einträge, Profileinträge, Kontaktformulare und andere einsendungen wo ein user seine email adresse eben so eintragen kann. Denke das das ganze in einer funktion steht ist nciht schlecht. Wenn man jetzt z.B.: ein standalon kontaktformular schreibt ist das natürlich was anderes.
TeazY ist offline   Mit Zitat antworten
Alt 22.05.2008, 06:29  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Seit PHP 5.2:
PHP: Filter - Manual

PHP-Code:
<?php
$strEmail 
"  not an %email^^";
$blnEmail filter_var($strEmailFILTER_VALIDATE_EMAIL) !== false;
if (!
$blnEmail) {
  
$strEmail filter_var($strEmailFILTER_SANITIZE_EMAIL); // clean up string
}
?>
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 22.05.2008, 19:06  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

@David: du hast den RegEx doch nicht etwa aus der Wikipedia kopiert, oder?
Manko10 ist offline   Mit Zitat antworten
Alt 22.05.2008, 19:39  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ich? Nein. Aber mache ich vielleicht noch
David ist offline   Mit Zitat antworten
Alt 31.05.2008, 23:47  
Neuer Benutzer
 
Benutzerbild von silver_surfer
 
Registriert seit: 31.05.2008
Beiträge: 25
silver_surfer befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
function check_email($email)
{        
    if(
preg_match('/^[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+$/i'$email) return true;
    
    return 
false;

Code:
Parse error: syntax error, unexpected T_RETURN in /data/apache/users/kilu.de/bandenwuermer/www/kontakt.php on line 4 
Soll dass so sein??
silver_surfer ist offline   Mit Zitat antworten
Alt 01.06.2008, 00:01  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Da fehlt eine Klammer.
Manko10 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage ob email adresse schon vorhanden ist TeazY PHP Tipps 2008 10 16.12.2007 12:22
[Erledigt] realtime email verify PHP-Fortgeschrittene 18 05.09.2007 17:52
email test shocky PHP Tipps 2006 2 16.03.2006 13:55
[Erledigt] Datei per PHP Formular an Email Adresse PHP Tipps 2005-2 1 28.06.2005 16:22
[Erledigt] doppelte email adressen suchen Datenbanken 9 20.05.2005 19:38
Abrfrabe ob email adresse im bestimmten format! LA-Finest PHP Tipps 2005 10 12.05.2005 12:23
Email aus textarea PHP Tipps 2005 3 14.04.2005 21:37
Formular an meine Email adresse senden 'progman' PHP Tipps 2005 1 01.03.2005 19:43
eMail kontrolle PHP Tipps 2004-2 1 20.12.2004 13:01
Email adresse in der DB vergleichen PHP Tipps 2004-2 5 17.11.2004 15:56
Wie implementiere ich mein Email Formular? PHP Tipps 2004-2 2 14.11.2004 17:02
GB Email check PHP Tipps 2004 53 27.10.2004 16:55
Adresse beim Suchmaschineneintrag ändern? Beitragsarchiv 6 02.08.2004 22:49
Email per PHP formatieren PHP Tipps 2004 4 26.07.2004 09:49
Email Adresse auflösen PHP Tipps 2004 4 19.06.2004 09:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php email prüfen, php email überprüfen, email überprüfen php, email prüfen php, php email adresse prüfen, php mail überprüfen, php mail prüfen, php mailadresse prüfen, php email überprüfung, email überprüfung php, email adresse prüfen php, php email adresse überprüfen, email php prüfen, php formular email überprüfen, email adresse überprüfen php, php e-mail überprüfen, email validieren php, email php überprüfen, php emailadresse prüfen, php mail adresse prüfen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum