Prüfen einer Email-Adresse

chainy24

Mitglied
Hallo,
ich weiß es gibt über dieses Thema schon viele Beiträge. Mein Problem ist aber, dass ich erstens ein absoluter Anfänger bei PHP bin und zweitens keine Fehlermeldung retour kommt. Ich also keine Ahnung habe, ob mein Skript überhaupt ansatzweise funktionieren könnte.

Ich über gebe per formular die Emailadresse, die ich pürfen will. Wenn die Prüfung falsch ist, soll einfach eine Fehlermeldung kommen, wenn sie richtig ist, das Mail geschickt werden.
PHP:
$email = $_POST["email"];
$check = ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $email)

if ($email != $check)
	{echo "Ihre E-Mail Adresse ist nicht korrekt!";}

kann das so überhaupt funktionieren?

Mein zweiter Ansatz wäre gewesen:
PHP:
$email = $_POST["email"];

if
{if (ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $email)) }
 
 else {"Ihre E-Mailadresse ist ungültig.";

Kann mir jemand sagen, ob ich wenigstens, auf dem richtigen Weg bin?

Danke Chainy
 
Naja, nicht so ganz.

Die korrekte Syntax für Wenn-Dann-Sonst-Prüfungen wäre:

PHP:
if ( $check == $mail )
{
   // hier mail senden
   mail( .... );
}
else
{
   // Fehlermeldung ausgeben
   echo "Ihre Email-Adresse ist ungültig.";
}

Beantwortet das deine Frage? Den Regex habe ich grad nicht geprüft. Aber da gibt es eine schöne Seite im Netz, wo es fertige reguläre Ausdrücke gibt, die auch auf ihre Funktionalität hin abgeklopft und bewertet werden: regexlib.
 
Hi,
danke für die schnelle Antwort.
Die Regex hab´ ich eh aus dem Netz, die sollte also stimmen.

Ich hab´s jetzt so geschrieben:
Code:
$to = "andrea.bolena@fantasybuch-shop.at";
$subject = "Anfrage Fantasybook-Shop";
$anz = $_POST["anzahl"];
$email = $_POST["email"];
$check = ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $email)
$message = 
	$i=1;
	while($i<=$anz)
	{																																																											
	$message = $message .  $_POST["ISBN" . $i] . " * " . $_POST["titel" . $i] . " *" . $_POST["autor" . $i] . " *" . $_POST["zyklus" . $i] . " * " . $_POST["zustand" . $i] . " * " . $_POST["format" .$i]."\n\n";
	$i++;
	}
	
	$message = $message . "\n";
	
if ( $check == $email )
{
     mail( $to, $subject, $message, "From: $email");
}
else
{
      echo "Ihre Email-Adresse ist ungültig.";
} 

echo "Danke für Ihre Anfrage!"
}?>

aber es kommt wieder nur eine leere Seite! Und es wird auch kein Mail verschickt.
 
Irgendwie hast du hier Chaos
PHP:
$check = ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $email)
$message = 
	$i=1;
	while($i<=$anz)
nach dem ereg () sollte noch ein ';'
Und was der Befehn $message=$i=1; soll ist mir fachlich noch offen. Wzu füllst du $message mit 1 ab?
 
HI
Das das Chaos ist, hab´ ich schon fast befürchtet!
Und was der Befehn $message=$i=1; soll ist mir fachlich noch offen. Wzu füllst du $message mit 1 ab?

Das ist der Zähler der session, es gibt, pro Titel, Autor, ... evtl mehrere Einträge (funktioniert wie ein Warenkorb). Oder meinst du, dass ich $i=1
ausserhalb der message definieren sollte?

hab, den Strichpunkt eingefügt, aber es funktioniert trotzdem nicht.:confused:
 
Hi,
Danke erstmals für die Hilfen!!
ich hab´s jetzt soweit, das zumindest geprüft wird, ob überhaupt was in dem Feld steht.
Jetzt soll der Nutzer aber die Möglichkeit haben, wenn die Fehlermeldung kommt, mittels eines Links wieder eine Seite zurück zu kommen. Das das mit php nicht geht, hab ich schon herausgefunden. Wollte es so lösen:
PHP:
<?php
if ($email == "")
	
{echo "<h2><font color = red><strong>Bitte geben Sie eine E-Mail Adresse an. </strong></font></h2";?>
  <a href="javascript:history.back()"><img src="HP_Bilder/buttons/zurueck.jpg"></a>
<?php
}
else
{
    echo "Danke für Ihre Anfrage! ";
	mail ($to, $subject, $message, "From: $email");		 
}
Das Bild wird auch richtig angezeigt, nur, das kein Hyperlink da ist. Warum?
 
Zurück