WinFuture-Forum.de: Email überprüfung... - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Email überprüfung...


#1 Mitglied ist offline   Mathman 

  • Gruppe: aktive Mitglieder
  • Beiträge: 306
  • Beigetreten: 28. April 02
  • Reputation: 0
  • Wohnort:Quedlinburg

geschrieben 15. November 2005 - 23:27

Hallo,

ich habe folgende überprüfung geschrieben, wo ich teile her ausm netz benutzt habe:

	<?php
	
	if ($action==kontakt)
	{
	$email = str_replace(" ","",$adresse);
	$split_a = explode("@", $adresse);
	$split_b = explode(".", $adresse);
	$split_c = explode(".", $split_a[1]);

 	if(empty($adresse) || !strpos($adresse,"@") || !strpos($adresse,".") || empty($split_a[0]) || empty($split_a[1]) || empty($split_b[0]) || empty($split_b[1]) || empty($split_c[0]) )
		{
		echo  ("Fehler, Ihre e-Mail Adresse ist nicht korrekt");
	}
	else
	{
		$to = "mailer@...";
		
		$from = $adresse;
		$browser = getenv(HTTP_USER_AGENT);
		$user_ip  = getenv(REMOTE_ADDR);
		
		$subject = "Anfrage";
		$anfrage = htmlentities ($anfrage);
		$anfrage = nl2br ($anfrage);
		$nachricht = "
		<b>Name:</b> $name,<br>
		<b>Email:</b> $adresse, <br><br>
		
		<b>Nachricht:</b><br>
		$anfrage
		
		<br><br><b>Browser:</b> $browser<br>
		<b>IP:</b> $user_ip";
		//echo"$nachricht";
		$header ="from:$adresse\n";
		$header.="MIME-Version: 1.0\n";
		$header.="Content-type: text/html; charset=iso-8859-1\n";
		mail($to, $subject, $nachricht, $header)
		or print "Konnte Anfrage nicht verschicken<br>";
		echo ("Ihre Nachricht wurde erfolgreich an uns übertragen.<br>
			<br>Sie werden in kürze von uns hören.");

	}
	}
?>


So, nun würde er aber hier die Mail auch abschicken wenn ich folgende Mailadressen eingeben würde hätte:

mat.man@domain
mathman@domain.

So dies darf aber nciht passieren :) und dann will ich noch dir TopLevelDomain auf 3 Zeichen begrenzen, also was nach dem letzten . kommt...

Kann mir jemand sagen wo mein Fehler liegt?

Dieser Beitrag wurde von Mathman bearbeitet: 15. November 2005 - 23:32

0

Anzeige



#2 Mitglied ist offline   ichbines 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.725
  • Beigetreten: 06. Oktober 02
  • Reputation: 0
  • Wohnort:Parndorf (Österreich)
  • Interessen:Computer, Linux

geschrieben 16. November 2005 - 00:01

Beitrag anzeigenZitat (Mathman: 16.11.2005, 00:27)

und dann will ich noch dir TopLevelDomain auf 3 Zeichen begrenzen, also was nach dem letzten . kommt...

Nein, das ist ein unsinn, weil du viele Domains ausschließt. Es gibt ja noch .name, .travel, .jobs, .aero, .museum, .coop, .info. Das sind die neuen Topleveldomains mit mehr als 4 Buchstaben. Einige davon befinden sich noch in Vorbereitung.

Du könntest das allerdings überprüfen, ob diese Topleveldomains in der Adresse vorkommen. Dann kannst du deine Begrenzung mit 3 Zeichen nehmen. Die mindest-Domain-länge sind 1 Zeichen.

Man könnte die Überprüfung z.B. auch vereinfachen:
if (!ereg("^.+@.+\\..+$", $email)) 
{
echo "Die eingegebene Emailadresse ist nicht korrekt!<br>"

}
else { // die Emailadresse ist richtig

}


oder

preg_match("/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/i", $_GET['email'])


Überprüft wird die Emailadresse dabei auf ein vorhandenes @ - Zeichen, und auf den ".".

codeschnipsel von devmag.

Dieser Beitrag wurde von ichbines bearbeitet: 16. November 2005 - 00:03

0

#3 Mitglied ist offline   Mathman 

  • Gruppe: aktive Mitglieder
  • Beiträge: 306
  • Beigetreten: 28. April 02
  • Reputation: 0
  • Wohnort:Quedlinburg

geschrieben 16. November 2005 - 09:00

Das Problem ist, dass ich ein syntaktischen Aufbau einer Emailadresse überprüfen muss,
da ich per Kontaktformular zu gespamt werde aus Frankreich (ergeht aus der IP).

Dort wird immer nur Müll von einem Programm in die Felder eingegeben,
von daher muss ich überprüfen ob die Mailadresse syntaktisch OK ist,
damit es kein Spam mehr darüber gibt.

Anders wüsste ich es nicht zu lösen.

MfG
Mathman
0

#4 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 16. November 2005 - 13:50

Und das geht mit dieser RegExp wunderbar.
Dazu noch mal das gleiche in JavaScript, um bereits clientseitig vor dem Senden auf einen Fehler hinzuweisen.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#5 Mitglied ist offline   Stan 

  • Gruppe: aktive Mitglieder
  • Beiträge: 7.013
  • Beigetreten: 06. Juni 04
  • Reputation: 35
  • Geschlecht:Männlich
  • Wohnort:München

geschrieben 16. November 2005 - 13:59

Da hab ich auch gleich mal ne Frage, undzwar, wir mein Gästebuch zugespammt, kann man da was machen?
0

#6 Mitglied ist offline   hasch 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.790
  • Beigetreten: 28. Januar 04
  • Reputation: 0
  • Wohnort:Localhost
  • Interessen:Ach so viele ...

geschrieben 16. November 2005 - 16:58

Beitrag anzeigenZitat (Stan: 16.11.2005, 13:59)

Da hab ich auch gleich mal ne Frage, undzwar, wir mein Gästebuch zugespammt, kann man da was machen?

Ganz einfach, du erstellst mit Hilfe der GDLib eine Grafik, die bsw. 5 Buchstaben automatisch generiert und vor dem Senden muss der User diesen Buchstabensalat eingeben, wenn er übereinstimmt, wird der beitrag gesendet, wenn nicht eben nicht :)
0

#7 Mitglied ist offline   ichbines 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.725
  • Beigetreten: 06. Oktober 02
  • Reputation: 0
  • Wohnort:Parndorf (Österreich)
  • Interessen:Computer, Linux

geschrieben 20. November 2005 - 18:22

Beitrag anzeigenZitat (Stan: 16.11.2005, 13:59)

Da hab ich auch gleich mal ne Frage, undzwar, wir mein Gästebuch zugespammt, kann man da was machen?

Und du überprüfs mithilfe der IPt, ob der User z.B. in der vergangenen Stunde schon mal gepostet hat. Wenn ja, dann darf er nicht mehr posten.

Also beschränken, das der User inerhalb z.B. einer Stunde 2 mal postet.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0