Plausibilitätsabfrage in Formmailer

Alaniak

Erfahrenes Mitglied
Hallo zusammen,

ist wahrscheinlich keine grosse Sache, aber PHP ist für mich absolutes Neuland.
Ich hab einen kleinen PHP Formmailer von der self Html seite übernommen. Klappt auch alles ganz wunderbar, nur möchte ich gern noch eine Plausibilitätsabfrage einbringen.

PHP:
<?php

$strEmpfaenger = 'empfänger@test.de';

$strFrom       = '"Formmailer"';

$strSubject    = 'Feedback';

$strReturnhtml = 'http://www.asdfg.de';

$strDelimiter  = ":\t";

if($_POST)
{
 $strMailtext = "";

 while(list($strName,$value) = each($_POST))
 {
  if(is_array($value))
  {
   foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value."\n";
  }
 }

 if(get_magic_quotes_gpc())
 {
  $strMailtext = stripslashes($strMailtext);
 }
 if(empty($name) || empty($email))
 {
  header("Location: fehler.html");
 } 
 else
 {
   mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
   or die("Die Mail konnte nicht versendet werden.");
   header("Location: $strReturnhtml");
   exit;
 }
}

?>

Es gibt drei Checkboxen, ein kurzes Textfeld und ein Textfeld, in dem die email adresse eingetragen werden soll.
Ich bräuchte jetzt ein plausibilitätsabfrage, ob mindestens eine der drei checkboxen markiert ist und ob es eine gültige email adresse im zweiten textfeld ist. Die abfrage, ob die zwei textfelder leer sind oder nicht hab ich schon hinbekommen. (empty($name) || empty($email))
Kann mir da jemand weiterhelfen?
Danke schonmal!
 
tjoh, email validieren mag ich nich, iss etwas umfangreicher mit RegEx und so... gibt aber auf webmaster-eye.de ein kleines Tutorial zum eMail-Adressenvalidieren.

wie du checkboxen abfragst ist simpel, nimmste

PHP:
if(isset($checkboxname)) { script }
oder besser:
PHP:
if(isset($checkboxname) == "value")) { script }
damit verhinderst du ungewollte Manipulationen.
 
Ich hab das ganze jetzt mal erweitert. Bei der validitätsprüfung der email brauch ich nicht unbedingt noch eine Domainprüfung etc.

Allerdings wird bei einer ungültigen email adresse jedesmal die danke_fehler.html aufgerufen und nicht wie beabsichtigt die fehler_mail.html

PHP:
 if(empty($name) || empty($email))
 {
	header("Location: danke_fehler.html");
 } 
 else
 {
	if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email)) 
    {
		mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  		or die("Die Mail konnte nicht versendet werden.");
 		header("Location: $strReturnhtml");
 		exit;
	}
	else 
	{ 
	header("Location: fehler_mail.html");
	}
 }


P.S. Eigentlich sind die Fehlerseiten auch nicht so das Beste. Besser wäre eine einfache Fehlermeldung.
 
Zuletzt bearbeitet:
Zurück