Seite 1 von 1

Variableninhalt auf Ende kontrollieren?

Verfasst: 23.07.2006 03:21
von Maxe
Hallo zusammen,

ich möchte einen kleinen Formmailer einbauen, aber in das eine Feld darf nur eine Mailadresse eingetragen werden die mit "@meine-vorgabe.de" endet.

Meine Abfrage sieht derzeit so aus, aber ich habe keine Ahnung wie ich eine Eingabe teilweise kontrolliere.

Code: Alles auswählen

if ($empfaenger=="")
{
echo "<p>Sie müssen Ihre E-Mail Adresse eingeben!</p>";
}
Ich denke für einige ist das eine Aufgabe für nachts um 4 Uhr, aber für mich leider nicht :-)

Gruß Maxe

Verfasst: 23.07.2006 09:58
von S2B
Ich würde sowas mit regulären Ausdrücken lösen:

Code: Alles auswählen

if (!preg_match('#^.*@meine-vorgabe\.de$#', $empfänger))
{
  // falsches Format der Adresse
}

Verfasst: 23.07.2006 12:14
von Banger
S2B hat geschrieben:Ich würde sowas mit regulären Ausdrücken lösen:
Nä, das ist overkill... :)

So macht das mehr Sinn:

Code: Alles auswählen

<?php
$vg = '@meine-vorgabe.de';
$lim = strlen($vg)*(-1);
if(substr($empfaenger, $lim) != $vg) {
    //Errorhandling
}
?>

Verfasst: 23.07.2006 12:49
von S2B
Banger hat geschrieben:
S2B hat geschrieben:Ich würde sowas mit regulären Ausdrücken lösen:
Nä, das ist overkill... :)
OK, aber dann könnte man in die RegEx noch weitere Überprüfungen einbauen. :P

Nee, deine Lösung ist wirklich schöner. :)

Verfasst: 23.07.2006 13:27
von Maxe
Jungs, nicht streiten :lol:

Ich hab Lösung 1 genommen, klappt super.
Hab es auch für 4 verschiedene Endungen gebraucht, echt klasse.

Danke für den Tipp.

Gruß Maxe

Verfasst: 23.07.2006 14:05
von Jensemann
Beide Lösungen, sowohl der Reguläre Ausdruck als auch die substr() Prüfung sind unvollständig und erlauben ein ausnutzen des Dienstes für SPAM. Die Prüfungen testen nur die letzte Adresse, was nicht ausreicht. Es können mehr Adressen verwendet werden:

mail("addr1@domain.tld, addr2@domain.tld, danke-fuer-spam@meine-vorgabe.de", "Betreff", "Test Mail");