Kontakt Formmailer

Bertel007

Grünschnabel
Hiho,

ich wollte mir ein Kontaktformular selber basteln.

Aber hat net so hingehauen also hier umgeschaut zwar was gefunden aber so wie es war , war es für mich nicht geeignet also mal ein wenig rumgebastelt aber auch net hingehauen *fg

Ich Poste einfach malhier was ich bisher habe, ich hoffe das jemand mich auf den richtigen weg bringen kann :)

kontaktformular.html

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body {
	background-image: url(Grafiken/hintergrund.gif);
}
-->
</style>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
//-->
</script>
</head>

<body>
<tr>
  <th height="313" scope="col">
  
<form action="formmailer.php" name="Daten_absenden" value="Daten_absenden" method="POST">
      <br />

<div id="kontaktformular">
<div id="kontaktformular_links"></div>
<div id="kontaktformular_rechts"></div>
<div id="kontaktformular_links"></div>
<div id="kontaktformular_rechts"></div>
<table width="54%" border="1" align="center" cellpadding="1" cellspacing="1">
  <tr>
    <th width="18%" scope="col"><div align="left">Vorname * </div></th>
    <th width="10%" scope="col">&nbsp;</th>
    <th width="72%" scope="col"><div align="left">
      <input type="text" name="VName3" size="30" maxlength="30" />
    </div></th>
  </tr>
  <tr>
    <th scope="row"><div align="left">Nachname *</div></th>
    <td>&nbsp;</td>
    <td><div align="left">
      <input type="text" name="VName2" size="30" maxlength="30" />
    </div></td>
  </tr>
  <tr>
    <th scope="row"><div align="left">E-Mail *</div></th>
    <td>&nbsp;</td>
    <td><div align="left">
      <input type="text" name="VName" size="30" maxlength="30" />
    </div></td>
  </tr>
  <tr>
    <th scope="row"><div align="left">Empfänger</div></th>
    <th scope="row">&nbsp;</th>
    <th scope="row"><div align="left">
      <select name="standort">
        <option value="webmaster" selected="selected">Webmaster</option>
        <option value="1vorsitzender">1. Vorsitzender</option>
        <option value="2vorsitzender">2. Vorsitzender</option>
        <option value="schatzmeisterin">Schatzmeisterin</option>
      </select>
    </div></th>
  </tr>
  <tr>
    <th align="left" valign="top" scope="row">Text *</th>
    <td>&nbsp;</td>
    <td><textarea name="Betreff"" cols="60" rows="5" wrap="physical" height:="height:" 80px;></textarea></td>
  </tr>
  <tr>
    <th colspan="3" scope="row"><button name="formaction" value="absenden" type="submit" id="absenden">absenden</button>       </th>
    </tr>
</table>
<p>
  <label onfocus="MM_validateForm('Vorname','','R','Nachname','','R','Ort','','R','Nachricht','','R');return document.MM_returnValue"></label>
  </p>
</form>
</body>
</html>

hier noch die Datei

formmailer.php

Code:
<?php

$email['webmaster']        = array("webmaster@pkg-heidelberg.de", "Webmaster");
$email['1vorstand']     = array("1.vorsitzender@pkg-heidelberg.de", "Katrin Weiß");
$email['2vorstand']   = array("2.vorsitzender@pkg-heidelberg.de", "Frank Richter");
$email['schatzmeisterin']       = array("schatzmeister@pkg-heidelberg.de", "Katrin Weiß");     


$gesendet           = $_REQUEST['formaction'];
$VName              = $_REQUEST['VName']; 
$EmailK             = $_REQUEST['EmailK'];
$Betreff            = $_REQUEST['Betreff'];

$Empfaenger = $email[$zentrale] [0];

      echo "Sie haben M&Uuml;TRA ".$email[$webmaster][1]." ausgew&auml;hlt<br>";
      echo "Ihr Name ist: ".$VNname."<br>";
      echo "Ihre Emailadresse ist: ".$EmailK."<br>";
      echo "Was sie uns mitteilen wollten, ist: <br>".$Betreff."<br><br>";
      echo "Die gew&uuml;nschte Emailadresse ist ".$email[$webmaster][0]."<br><br><br>";


  


   $Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
      while(list($Formularfeld, $Wert)=each($_REQUEST))
      {
         if($Formularfeld!="absenden")
         {
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
         }
      }
      $Mailnachricht .= "\nDatum/Zeit: ";
      $Mailnachricht .= date("d.m.Y H:i:s");
      $Mailbetreff = "Kontakt: ";
      $Mailbetreff .= $Betreff;
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$EmailK);
      echo"Vielen Dank f&uuml;r Ihre eMail!";
   
?>


Das hier ist nach dem Versende Versuch das Ergebnis

Code:
Sie haben MÜTRA ausgewählt
Ihr Name ist:
Ihre Emailadresse ist:
Was sie uns mitteilen wollten, ist:
sdfsdf

Die gewünschte Emailadresse ist


No recipient addresses found in header Vielen Dank für Ihre eMail!
 
Zuletzt bearbeitet:

Sven Mintel

Mitglied
Ich sehe dort nirgends eine Variable $zentrale .
Dieser Umstand verhindert das Einfügen des Mailempfängers, was auch die Fehlermeldung bestätigt.

Die Empfanger-Liste heisst "standort", also müsste es so lauten:
Code:
$Empfaenger = $email[$_REQUEST['standort']] [0];
 
Zuletzt bearbeitet:

Bertel007

Grünschnabel
also es Funktioniert leider noch net so wie ich wollte

hier mal die ganzen Daten :

formmailer.php :

Code:
<?php

$email['webmaster']        = array("webmaster@pkg-heidelberg.de", "Webmaster");
$email['1vorstand']     = array("1.vorsitzender@pkg-heidelberg.de", "Heike Neumann");
$email['2vorstand']   = array("2.vorsitzender@pkg-heidelberg.de", "Frank Richter");
$email['schatzmeisterin']       = array("schatzmeister@pkg-heidelberg.de", "Katrin Weiß");     


$gesendet           = $_REQUEST['formaction'];
$VName1              = $_REQUEST['VName1'];
$VName2              = $_REQUEST['VName2']; 
$EmailK             = $_REQUEST['EmailK'];
$Betreff            = $_REQUEST['Betreff'];

$Empfaenger = $email[$_REQUEST['empfaenger']] [0];

      echo "Sie haben  ".$email[webmaster][1]." als Empf&auml;nger ausgew&auml;hlt<br>";
      echo "Ihr Nachname ist: ".$VName1."<br>";
	  echo "Ihr Vorname ist: ".$VName2."<br>";
      echo "Ihre Emailadresse ist: ".$EmailK."<br>";
      echo "Was sie uns mitteilen wollten, ist: <br>".$Betreff."<br><br>";
      echo "Die gew&uuml;nschte Emailadresse ist ".$email[$webmaster][0]."<br><br><br>";


  


   $Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
      while(list($Formularfeld, $Wert)=each($_REQUEST))
      {
         if($Formularfeld!="absenden")
         {
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
         }
      }
      $Mailnachricht .= "\nDatum/Zeit: ";
      $Mailnachricht .= date("d.m.Y H:i:s");
      $Mailbetreff = "Kontakt: ";
      $Mailbetreff .= $Betreff;
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$EmailK);
      echo"Vielen Dank f&uuml;r Ihre eMail!";
   
?>

kontaktformular.html :

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body {
	background-image: url(Grafiken/hintergrund.gif);
}
-->
</style>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
//-->
</script>
</head>

<body>
<tr>
  <th height="313" scope="col">
  
<form action="formmailer.php" name="Daten_absenden" value="Daten_absenden" method="POST">
      <br />

<div id="kontaktformular">
<div id="kontaktformular_links"></div>
<div id="kontaktformular_rechts"></div>
<div id="kontaktformular_links"></div>
<div id="kontaktformular_rechts"></div>
<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
  <tr>
    <th width="18%" scope="col"><div align="left">Nachname * </div></th>
    <th width="10%" scope="col">&nbsp;</th>
    <th width="72%" scope="col"><div align="left">
      <input type="text" name="VName1" size="30" maxlength="30" />
    </div></th>
  </tr>
  <tr>
    <th scope="row"><div align="left">Vorname *</div></th>
    <td>&nbsp;</td>
    <td><div align="left">
      <input type="text" name="VName2" size="30" maxlength="30" />
    </div></td>
  </tr>
  <tr>
    <th scope="row"><div align="left">E-Mail *</div></th>
    <td>&nbsp;</td>
    <td><div align="left">
      <input type="text" name="EmailK" size="30" maxlength="30" />
    </div></td>
  </tr>
  <tr>
    <th scope="row"><div align="left">Empfänger</div></th>
    <th scope="row">&nbsp;</th>
    <th scope="row"><div align="left">
      <select name="empfaenger">
        <option value="webmaster" selected="selected">Webmaster</option>
        <option value="1vorsitzender">1. Vorsitzender</option>
        <option value="2vorsitzender">2. Vorsitzender</option>
        <option value="schatzmeisterin">Schatzmeisterin</option>
      </select>
    </div></th>
  </tr>
  <tr>
    <th align="left" valign="top" scope="row">Text *</th>
    <td>&nbsp;</td>
    <td><textarea name="Betreff"" cols="60" rows="5" wrap="physical" height:="height:" 80px;></textarea></td>
  </tr>
  <tr>
    <th colspan="3" scope="row"><button name="formaction" value="absenden" type="submit" id="absenden">absenden</button>       </th>
    </tr>
</table>
<p align="center">mit * gekennzeichnete Felder müssen ausgefült werden.</p>
<p>
  <label onfocus="MM_validateForm('Vorname','','R','Nachname','','R','Ort','','R','Nachricht','','R');return document.MM_returnValue"></label>
  </p>
</form>
</body>
</html>

das Ergebnis das ich nach erhalt einer E-Mail kam lautet :

PHP:
Sie haben folgende Nachricht erhalten:
 
VName1: 1
VName2: 2
EmailK:
empfaenger: webmaster
Betreff:
formaction: absenden
 
Datum/Zeit: 25.11.2008 23:24:26

Ich komme leider nicht weiter damit


könnte jemand das sich mal anschauen und soabändern das es gehen sollte ?

Wäre echt super
 
Zuletzt bearbeitet:

Sven Mintel

Mitglied
Erstmal jenes :
Code:
if($Formularfeld!="absenden")

...sollte so lauten:
Code:
if($Formularfeld!="formaction")


Was den Betreff angeht, weiss ich nicht, ob du da nichts eingetragen hast, auffällig ist auf jeden Fall, dass dort ein Gänsefuss zu viel ist:
Code:
<textarea name="Betreff""

Auch sonst weiss ich nicht, was dort stehen sollte...denn du hast das Formular ja ausgefüllt :)
 

fredolin

Erfahrenes Mitglied
Hey Bertel,

Schau dir mal genau diesen Code an
PHP:
$email['webmaster']        = array("webmaster@pkg-heidelberg.de", "Webmaster");
$email['1vorstand']     = array("1.vorsitzender@pkg-heidelberg.de", "Heike Neumann");
$email['2vorstand']   = array("2.vorsitzender@pkg-heidelberg.de", "Frank Richter");
$email['schatzmeisterin']       = array("schatzmeister@pkg-heidelberg.de", "Katrin Weiß");

und vergleiche dies mit diesem Code
PHP:
 <select name="empfaenger">
        <option value="webmaster" selected="selected">Webmaster</option>
        <option value="1vorsitzender">1. Vorsitzender</option>
        <option value="2vorsitzender">2. Vorsitzender</option>
        <option value="schatzmeisterin">Schatzmeisterin</option>
      </select>

man sollte versuchen auch die gleichen Variablen zu verwenden, sonst werden diese Variablen auch nirgendswo angezeigt.

Tschau
Fredolin
 

Bertel007

Grünschnabel
es hat sich erledigt mittlerweile, nen Freund von mir hat sich dem angenommen und hat es zum Funktionieren gebracht :)


Hier mal das Ergebnis :

PHP:
<?php
if($_REQUEST['VName1']=="" || $_REQUEST['VName2']=="" || $_REQUEST['EmailK']=="" || $_REQUEST['Betreff']=="" || $_REQUEST['grund']=="keiner") {
header("location: formmailer.php?action=info");
exit();
}else{
 	$email['webmaster']        = array("test@test.de", "Test");
$email['1vorstand']     = array("test1@test.de", "Test1");
$email['2vorstand']   = array("test2@test.de", "Test2");
$email['schatzmeisterin']       = array("test3@test.de", "Test3");     

$gruende['keiner'] = array("keiner");
$gruende['homepage'] = array("Homepage");
$gruende['allgemeines'] = array("Allgemeines");
$gruende['positiv'] = array("Positiv");
$gruende['negativ'] = array("Negativ");

$gesendet           = $_REQUEST['formaction'];
$VName1              = $_REQUEST['VName1'];
$VName2              = $_REQUEST['VName2']; 
$EmailK             = $_REQUEST['EmailK'];
$text            = $_REQUEST['Betreff'];
$betreff	= "Kontaktmailer Nachricht";
$Empfaenger = $email[$_REQUEST['empfaenger']] [0];
$grund = $gruende[$_REQUEST['grund']] [0];

	


   $Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
      while(list($Formularfeld, $Wert)=each($_REQUEST))
      {
         if($Formularfeld!="formaction")
         {
			 if($Formularfeld == "VName1") $Formularfeld = "Nachname";
			 if($Formularfeld == "VName2") $Formularfeld = "Vorname";
			  if($Formularfeld == "EmailK") $Formularfeld = "Absender";
			if($Formularfeld == "empfaenger") $Formularfeld = "Empfänger";
			if($Formularfeld == "grund") {
				$Formularfeld = "Grund";
				$Wert = $grund;
			}
			if($Formularfeld == "Betreff") $Formularfeld = "Die Nachricht";
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
         }
      }
      $Mailnachricht .= "\nDatum/Zeit: ";
      $Mailnachricht .= date("d.m.Y H:i:s");
$headers = "From:".$EmailK."\n";
$headers .= "Content-type: text/plain; charset=utf-8\n";
$headers .= "Content-Transfer-Encoding: 8bit;\n";
$headers .= "X-Mailer: SimpleForm;";
mail($Empfaenger, $betreff, $Mailnachricht, $headers);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fehlermeldung</title>
<style type="text/css">
<!--
body {
	background-image: url(hintergrund.gif);
}
-->
</style>
</head>

<body>
<center>
 Sie haben <?php echo $email[$_REQUEST['empfaenger']] [1]; ?> als Empf&auml;nger ausgew&auml;hlt<br>
 Ihr Nachname ist: <?php echo $VName1; ?><br>
Ihr Vorname ist: <?php echo $VName2; ?><br>
Ihre Emailadresse ist: <?php echo $EmailK; ?><br>
Grund: <?php echo $gruende[$_REQUEST['grund']] [0]; ?><br>
Was sie uns mitteilen wollten, ist: <?php echo $text; ?><br><br><br>
Vielen Dank f&uuml;r Ihre eMail!
</center>
</body>
</html>
<?php
}
if($_REQUEST['action'] == "info") {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fehlermeldung</title>
<style type="text/css">
<!--
body {
	background-image: url(hintergrund.gif);
}
-->
</style>
</head>

<body>
<center>
Sie haben nicht alle Felder mit <font color="red">*</font> ausgef&uuml;llt.</b>
</center>
</body>
</html>
<?php
}
?>

hier der Code von der kontaktformular.html

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body {
	background-image: url(../Grafiken/hintergrund.gif);
}
.Stil1 {font-size: 10px}
-->
</style>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
//-->
</script>
</head>

<body>
<tr>
  <th height="313" scope="col" onfocus="MM_validateForm('VName1','','R','VName2','','R','EmailK','','R','Betreff','','R');return document.MM_returnValue">
  
<p align="center">Kontaktformular</p>
<form action="formmailer.php" name="Daten_absenden" value="Daten_absenden" method="POST">
  <table width="500" height="250" border="0" align="center" cellpadding="1" cellspacing="1" background="PKG_Postkarte.png">
    <tr>
      <th width="211" height="37" align="right" valign="bottom" scope="row">
        <input name="VName1" type="text" id="VName1" size="20" maxlength="30" /></th>
      <th width="282" scope="col"></th>
    </tr>
    <tr>
      <th height="32" align="right" valign="bottom" scope="row"><input name="VName2" type="text" id="VName2" size="20" maxlength="30" /></th>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <th height="32" align="right" valign="bottom" scope="row"><input name="EmailK" type="text" id="EmailK" size="20" maxlength="30" /></th>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <th height="30" align="right" valign="bottom" scope="row"><select name="grund" id="grund">
        <option value="homepage">Homepage</option>
        <option value="allgemeines" selected="selected">Allgemeines</option>
        <option value="positiv">Positiv</option>
        <option value="negativ">Negativ</option>
      </select></th>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <th rowspan="3" align="left" valign="top" scope="row"><textarea name="Betreff" cols="23" rows="5" wrap="physical" id="Betreff" height:="height:" 80px;></textarea></th>
          </tr>
    <tr>
      <td height="48" align="right" valign="bottom"><select name="empfaenger">
        <option value="webmaster">Webmaster</option>
        <option value="1vorstand">1. Vorsitzender</option>
        <option value="2vorstand">2. Vorsitzender</option>
        <option value="schatzmeisterin">Schatzmeisterin</option>
        <option value="geschaeftsstelle" selected="selected">Geschäftsstelle</option>
      </select></td>
    </tr>
    <tr>
      <td align="right" valign="middle">&nbsp;</td>
    </tr>
  </table>
  <div id="kontaktformular_links"></div>
<div id="kontaktformular_rechts"></div>
<table width="76%" border="0" align="center" cellpadding="1" cellspacing="1">
  <tr>
    <th width="73%" scope="row"><button name="formaction" value="absenden" type="submit" id="absenden">Ab damit in dem Briefkasten</button>           </th>
  </tr>
</table>
<p align="center"><label onfocus="MM_validateForm('Vorname','','R','Nachname','','R','Ort','','R','Nachricht','','R');return document.MM_returnValue"></label>
  </p>
</form>
</body>
</html>

habe das ganze später eine Postkarte als Hintergrund genutzt :)
und die Felder Verschoben.