Contact-Formular an mehrere eMail-adressen (per Selektion)

OneBit

OneBit

Aktives Mitglied
Thread Starter
Dabei seit
13.01.2006
Beiträge
121
Reaktionspunkte
0
Ich habe ein Contact-Formular das mit javascript und php funktioniert. Nun möchte ich ein drop-down-menu haben das den Empfänger selektiert und dieser nacher in das .php-dokument weitergegeben wird. hab kein plan wie ich das lösen könnte!

mein html-code:
HTML:
 <form name="phpformmailer" action="contact.php" align="center" method="post">
  <div id="contact"><right><table width="373" align="right" class="inputc">

    <tr>
      <td align="right" width="154"><small class="inputc"><strong>Name/Vorname</strong></small></td>
      <td width="207"><font face="Arial">
        <input class="inputc" size="29" name="name"></font></td>
    </tr>
    <tr>
      <td align="right" width="154" class="inputc"><strong>Adresse</strong></td>
      <td align="left" width="207"><font face="Arial">
        <input class="inputc" size="29" name="adress"></font></td>
    </tr>
	 <tr>
      <td align="right" width="154" class="inputc"><strong>Branche</strong></td>
      <td align="left" width="207"><font face="Arial">
        <input class="inputc" size="29" name="branche"></font></td>
    </tr>
	 <tr>
      <td align="right" width="154" class="inputc"><strong>Tel</strong></td>
      <td align="left" width="207"><font face="Arial">
        <input class="inputc" size="29" name="tel"></font></td>
    </tr>
	 <tr>
      <td align="right" width="154" class="inputc"><strong>Fax</strong></td>
      <td align="left" width="207"><font face="Arial">
        <input class="inputc" size="29" name="fax"></font></td>
    </tr>
	 <tr>
      <td align="right" width="154" class="inputc"><strong>eMail</strong></td>
      <td align="left" width="207"><font face="Arial">
        <input class="inputc" size="29" name="email"></font></td>
    </tr>
    <tr align="middle">
      <td align="right" width="154"><font color="#000080" size="1" class="inputc"><strong>eMail wiederholen </strong></font></td>
      <td width="207" align="left"><font face="Arial">
        <input class="inputc" size="29"
      name="email2"></font></td>
    </tr>
    <tr>
      <td width="154" align="right" class="inputc"><strong>Betreff<small></small></strong></td>
      <td width="207"><font face="Arial">
        <input class="inputc" size="29" name="thesubject"></font></td>
    </tr>
    <tr>
      <td width="154" align="right" class="inputc"><strong>Ihre Nachricht</strong> </td>
      <td width="207" class="inputc"><textarea name="themessage" cols="27" rows="7" class="inputc" style="FONT-SIZE: 10pt"></textarea></td>
    </tr>
    <tr>
      <td width="154" align="right" class="inputc"><strong>An Herrn Nummer 1</strong></td>
      <td width="207"><script language="JavaScript"><!--
function validateForm() 
{
 var okSoFar=true
 with (document.phpformmailer)
 {
  var foundAt = email.value.indexOf("@",0)
  if (foundAt < 1 && okSoFar)
  {
    okSoFar = false
    alert ("Bitte fügen Sie eine gültige eMail-Adresse ein")
    email.focus()
  }
  var e1 = email.value
  var e2 = email2.value
  if (!(e1==e2) && okSoFar)
  {
    okSoFar = false
    alert ("Ihre eMail-Adresse stimmt nicht überein, bitte nochmals überprüfen")
    email.focus()
  }
  if (thesubject.value=="" && okSoFar)
  {
    okSoFar=false
    alert("Bitte fügen Sie einen Betreff ein")
    thesubject.focus()
  }
  if (themessage.value=="" && okSoFar)
  {
    okSoFar=false
    alert("Bitte fügen Sie eine Nachricht ein")
    themessage.focus()
  }
   if (tel.value=="" && okSoFar)
  {
    okSoFar=false
    alert("Bitte fügen Sie Ihre Telefonnummer ein")
    tel.focus()
  }
   if (name.value=="" && okSoFar)
  {
    okSoFar=false
    alert("Bitte fügen Sie Ihren Namen ein")
    name.focus()
  }
  if (okSoFar==true)  submit();
 }
}
// --></script><input type="button" class="button"
      value="Send" name="B1" ONCLICK="javascript:validateForm()"></td>
    </tr>
    

  </table>
  </center></div>
</form>

und hier die source des php-files:
PHP:
<?php

$valid_ref1="http://www.meinedomain.com/index.html";
$valid_ref2="http://www.meinedomain.com/index.html";
$replyemail="mein@email.com";


function clean_input_4email($value, $check_all_patterns = true)
{
 $patterns[0] = '/content-type:/';
 $patterns[1] = '/to:/';
 $patterns[2] = '/cc:/';
 $patterns[3] = '/bcc:/';
 if ($check_all_patterns)
 {
  $patterns[4] = '/\r/';
  $patterns[5] = '/\n/';
  $patterns[6] = '/%0a/';
  $patterns[7] = '/%0d/';
 }

 return preg_replace($patterns, "", strtolower($value));
}

$name = clean_input_4email($_POST["name"]);
$adress = clean_input_4email($_POST["adress"]);
$branche = clean_input_4email($_POST["branche"]);
$tel = clean_input_4email($_POST["tel"]);
$fax = clean_input_4email($_POST["fax"]);
$email = clean_input_4email($_POST["email"]);
$thesubject = clean_input_4email($_POST["thesubject"]);
$themessage = clean_input_4email($_POST["themessage"], false);

$error_msg='ERROR - Zusendung nicht erfolgt, bitte erneut probieren!';

$replymessage = "Sehr geehrte(r) Frau/Herr $name

Vielen Dank für Ihre eMail. Wir werden Ihre Anfrage so rasch wie möglich beantworten.



Mit freundlichen Grüssen:

Ihr ******* Team!














//////////////////////////////////////////////////

Ihre gesendete Nachricht:
--------------------------------------------------
Subject: $thesubject
Name: $name
Adresse: $adress
Branche: $branche
Tel: $tel
Fax: $fax

Nachricht:
$themessage
--------------------------------------------------

Vielen Dank";


if (!isset($_POST['email']))
{
 echo "<script language=\"JavaScript\"><!--\n ";
 echo "top.location.href = \"$valid_ref1\"; \n// --></script>";
 exit;
}

$ref_page=$_SERVER["HTTP_REFERER"];
$valid_referrer=0;
if($ref_page==$valid_ref1) $valid_referrer=1;
elseif($ref_page==$valid_ref2) $valid_referrer=1;
if(!$valid_referrer)
{
 echo "<script language=\"JavaScript\"><!--\n alert(\"$error_msg\");\n";
 echo "top.location.href = \"$valid_ref1\"; \n// --></script>";
 exit;
}
$themessage = "

------------Absender-Informationen------------
Name: $name 
Adresse: $adress  
Branche: $branche  
Tel: $tel  
Fax: $fax
----------------------------------------------

Nachricht: $themessage


----------------------------------------------
";
mail("$replyemail",
     "$thesubject",
     "$themessage",
     "From: $email\nReply-To: $email");
mail("$email",
     "Receipt: $thesubject",
     "$replymessage",
     "From: $replyemail\nReply-To: $replyemail");
echo $success_sent_msg;

?>
 
Hab ich das richtig verstanden?
Du willst den Empfänger der Mail, die von dem Script erstellt wird, durch ein Drop-Down.Menü ermitteln?

Dann mach es folgendermaßen:
In HTML erstellt Du das Dropdownmenü mit den Adressen.
Den einzelnen <option>s gibts Du das Attribut value="mail@test.de", freillich mit passender Mailadresse.

Und auf die greifst Du dann mit PHP zurück (über den Namen des <select>).
Ein Referenzlink:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=192&group=31

Oder hab ich das falsch verstanden?

gruß
Lukas
 
nein du hast das genauso verstanden wie ichs meinte :) vielen dank für die rasche antwort, ich probiers gleich mal aus!

thanx!
 
Wenn die Empfänger feststehen, würde ich es über IDs machen.

Dann machst Du „value="1"“ im <option>-Tag

und in dem auswertenden PHP-File switchst Du darüber

PHP:
switch($email_value)
{
case '1':
$email_add = "info@domain.de";
break;

case '2':
$email_add = "kontakt@domain.de";
break;

default:
echo 'Ungültiger Wert!';
}

Das ist sicherer und einfacher zu überprüfen als die wirklich übergebenen Adressen. Mit geschickten Angaben könnte Dein Skript sonst zweckentfremdet werden.

Außerdem kannst Du bei mehreren Kontaktformularen so eine eMail-Adresse schnell für alle ändern.
 
Zuletzt bearbeitet von einem Moderator:
also, es hat alles geklappt. ich habe es simple mit
PHP:
 $replyemail=($_POST["choice"]);
, gelöst, anstatt
PHP:
$replyemail="mein@email.com";

html-code für die auswahl:
HTML:
<select name="choice">
    <option>Bitte Empf&auml;nger ausw&auml;hlen</option>
    <option value="erste@mail.com">An Herrn eins</option>
    <option value="zweite@mail.com">An Herrn zwei</option>
                  </select>




grüsse oneBit
 
@jakob, vielen dank für den tip! dazu ist deine variante noch einbisschen eleganter. nur leider bekomme ich es sytax-mässig nicht hin!
die $replyemail= bleibt doch bestehen und dahinter dann dein script oder?
 
Genau, Du machst
PHP:
$replyemail=($_POST["choice"]);

und dann den switch über $replyemail.

PHP:
switch($replyemail)
{
case '1':
$replyemail = 'hallo@domain.de';
break; // break hinter jedem case nicht vergessen
//[…]
}
 
Zurück
Oben Unten