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

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von OneBit, 05.09.2006.

  1. OneBit

    OneBit Thread Starter MacUser Mitglied

    Beiträge:
    121
    Zustimmungen:
    0
    MacUser seit:
    13.01.2006
    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;

    ?>
     
  2. koli.bri

    koli.bri Gast

    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
     
  3. OneBit

    OneBit Thread Starter MacUser Mitglied

    Beiträge:
    121
    Zustimmungen:
    0
    MacUser seit:
    13.01.2006
    nein du hast das genauso verstanden wie ichs meinte :) vielen dank für die rasche antwort, ich probiers gleich mal aus!

    thanx!
     
  4. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    MacUser seit:
    05.01.2004
    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 von einem Moderator bearbeitet: 15.03.2016
  5. OneBit

    OneBit Thread Starter MacUser Mitglied

    Beiträge:
    121
    Zustimmungen:
    0
    MacUser seit:
    13.01.2006
    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
     
  6. OneBit

    OneBit Thread Starter MacUser Mitglied

    Beiträge:
    121
    Zustimmungen:
    0
    MacUser seit:
    13.01.2006
    @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?
     
  7. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    MacUser seit:
    05.01.2004
    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
    //[…]
    }
     
Die Seite wird geladen...