mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 13:59 Benutzername: Passwort: Auto-Login

Thema: Kontaktformular mit Empfänger-Auswahl schickt nicht .. vom 05.03.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Kontaktformular mit Empfänger-Auswahl schickt nicht ..
Autor Nachricht
Anagura
Threadersteller

Dabei seit: 15.04.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 05.03.2009 23:15
Titel

Kontaktformular mit Empfänger-Auswahl schickt nicht ..

Antworten mit Zitat Zum Seitenanfang

Hallo!

Ich habe heute mein Bestes versucht, aber es hat nicht gereicht ... ich habe eben nur PmbW .. PHP mit beschränktem Wissen oder so .. einmal vorweg - hänge immer in google und Foren drin, aber ich komm so jetzt nicht mehr weiter.

Es geht um folgendes -> Ich habe angefangen mit einem Kontaktformular von formular-generator, das habe ich erweitert und alles zugewiesen und das versenden an eine E-Mail Adresse hat geklappt.
Jetzt kommt der Punkt - in einer Auswahlbox soll man auswählen, an wen man die E-Mail schicken will (werden nachher noch mehr). Irgendwo habe ich jetzt den Hund drin, dass er jetzt keine E-Mails versendet. Ich weiß nicht ob ich etwas nicht definiert habe, einfach nur falsch definiert habe, oder sonst irgendeinen Schwachsinn zusammengebastelt habe.

Kann mir irgendjemand helfen oder Tipps geben? Wäre wirklich super.

Code:

<script language=JavaScript>
<!--
 function isValid() {

   var msg = "";
   
   if (kontaktFormular.eMail.value.indexOf("@") < 1 ||
       kontaktFormular.eMail.value.indexOf(".") < 1) {
     msg += "- Die E-Mail-Adresse ist syntaktisch nicht korrekt.\n";
   }
   
   if(kontaktFormular.vorName.value == "") {
     msg += "- Leeres Feld: Vorname:\n";
   }

   if(kontaktFormular.nachName.value == "") {
     msg += "- Leeres Feld: Nachname:\n";
   }

   if(kontaktFormular.Strasse.value == "") {
     msg += "- Leeres Feld: Straße:\n";
   }

   if(kontaktFormular.PLZ.value == "") {
     msg += "- Leeres Feld: PLZ:\n";
   }

   if(kontaktFormular.Ort.value == "") {
     msg += "- Leeres Feld: Ort:\n";
   }

   
   if(msg == "") {
     return true;   
   }
   alert(msg);
   return false;
 }
-->
</script>
<?php
 
  $formularAnzeigen = false;
  if (!empty($_POST["senden"]) && (
      empty($_POST["vorName"]) ||
      empty($_POST["nachName"]) ||
      empty($_POST["Strasse"]) ||
      empty($_POST["PLZ"]) ||
      empty($_POST["Ort"]) ||
      empty($_POST["eMail"]))) {
    $formularAnzeigen = true;
    echo '<span style="color: #FF0000; font-size: large;">Bitte alle Pflichtfelder ausf&uuml;llen.</span>';
  } else if (!empty($_POST["senden"]) &&
             !isEmail($_POST["eMail"])) {
    $formularAnzeigen = true; 
    echo '<span style="color: #FF0000; font-size: large;">Die E-Mail-Adresse ist nicht korrekt.</span>';
  } else if (empty($_POST["senden"])) {
    $formularAnzeigen = true; 
  }
  if ($formularAnzeigen) {
?>
<form name="kontaktFormular" method="post" action="<?=$_SERVER[PHP_SELF]; ?>" onSubmit="return isValid()">
  <table width="600" border="0">
<!--anfang to-->   
    <tr>
      <td width="169">
        <strong>Bitte w&auml;hlen Sie eine Marke:</strong>
      </td>
      <td width="340">
        <select name="emailadresse">
          <option value="1" selected>Audi</option>
          <option value="2">Mercedes</option>
          <option value="3">Peugeot</option>
          <option value="4">Renault</option>
        </select></td>
      <td>
        &nbsp;
      </td>
    </tr>
<!--ende to-->
<!--anfang Kontaktdaten-->   
    <tr>
      <td colspan="2">
        <h6>Kontaktdaten</h6>
      </td>
      <td>
        &nbsp;
      </td>
    </tr>
<!--ende Kontaktdaten-->
<!--anfang Anrede-->   
    <tr>
      <td width="169">
        <strong>Anrede:</strong>
      </td>
      <td width="340">
        <select name="anrede">
          <option <?=($_POST['anrede']=='Frau')?'selected':''?>>Frau</option>
          <option <?=($_POST['anrede']=='Herr')?'selected':''?>>Herr</option>
        </select></td>
      <td>
        &nbsp;
      </td>
    </tr>
<!--ende Anrede-->
<!--anfang Titel--> 
    <tr>
      <td><strong>
        Titel:
      </strong></td>
      <td>
      <input name="Titel" type="text" value="<?=$_POST['Titel']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende Titel-->
<!--anfang vorName--> 
    <tr>
      <td><strong>
        Vorname: *
      </strong></td>
      <td>
      <input name="vorName" type="text" value="<?=$_POST['vorName']; ?>" /></td>

      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende vorName-->
<!--anfang nachName-->   
    <tr>
      <td><strong>
        Nachname: *
      </strong></td>
      <td><input name="nachName" type="text" value="<?=$_POST['nachName']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende nachName-->
<!--anfang Firma-->   
    <tr>
      <td><strong>
        Firma:
      </strong></td>
      <td><input name="Firma" type="text" value="<?=$_POST['Firma']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende Firma-->
<!--anfang Strasse-->   
    <tr>
      <td><strong>
        Stra&szlig;e: *
      </strong></td>
      <td><input name="Strasse" type="text" value="<?=$_POST['Strasse']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende Strasse-->
<!--anfang PLZ-->   
    <tr>
      <td><strong>
        PLZ: *
      </strong></td>
      <td><input name="PLZ" type="text" value="<?=$_POST['PLZ']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende PLZ-->
<!--anfang Ort-->   
    <tr>
      <td><strong>
        Ort: *
      </strong></td>
      <td><input name="Ort" type="text" value="<?=$_POST['Ort']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende Ort-->
<!--anfang Ort-->   
    <tr>
      <td><strong>
        Telefon:
      </strong></td>
      <td><input name="Telefon" type="text" value="<?=$_POST['Telefon']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende Telefon-->
<!--anfang eMail-->       
    <tr>
      <td><strong>
        E-Mail: *
      </strong></td>
      <td><input name="eMail" type="text" id="eMail" value="<?=$_POST['eMail']; ?>" /></td>
      <td>
        &nbsp;
      </td>     
    </tr>
<!--ende eMail-->
<!--anfang Anmerkungen-->     
    <tr>
      <td><strong>
        Anmerkungen:
      </strong></td>
      <td><textarea name="Anmerkungen" cols="40" rows="10"><?=$_POST['Anmerkungen']; ?></textarea></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende Anmerkungen-->   
    <tr>
      <td colspan="2">
        <div align="center">
          <input name="senden" type="submit" value="Senden" />
        </div>
      </td>         
      <td>&nbsp;</td>         
    </tr>
  </table>
</form>

<?php
  } else {
    $eMail = '
       
Anrede:
'.$_POST['anrede'].'

Titel:
'.$_POST['Titel'].'
       
Vorname:
'.$_POST['vorName'].'
       
Nachname:
'.$_POST['nachName'].'

Firma:
'.$_POST['Firma'].'
       
Strasse:
'.$_POST['Strasse'].'
       
PLZ:
'.$_POST['PLZ'].'
       
Ort:
'.$_POST['Ort'].'
       
Telefon:
'.$_POST['Telefon'].'

E-Mail:
'.$_POST['eMail'].'
       
Anmerkungen:
'.$_POST['Anmerkungen'].'';

$mailsenden_an = $_POST['emailadresse'];
if ($mailsenden_an = 1) {
    $mailsenden_an = "adresse1@sample.com";
   }
if ($mailsenden_an = 2) {
    $mailsenden_an = "adresse2@sample.com";
   }
if ($mailsenden_an = 3) {
    $mailsenden_an = "adresse3@sample.com";
   }
if ($mailsenden_an = 4) {
    $mailsenden_an = "adresse4@sample.com";
   }     
   else {
      echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
    }
  }
 
  function isEmail($email) {
    $nonascii      = "\x80-\xff";
    $nqtext        = "[^\\$nonascii\015\012\"]";
    $qchar         = "\\[^$nonascii]";
    $protocol      = "(?:mailto:)";
    $normuser      = "[a-zA-Z0-9][a-zA-Z0-9_.-]*";
    $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
    $user_part     = "(?:$normuser|$quotedstring)";
    $dom_mainpart  = "[a-zA-Z0-9][a-zA-Z0-9._-]*\.";
    $dom_subpart   = "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*";
    $dom_tldpart   = "[a-zA-Z]{2,5}";
    $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";
    $regex         = "$protocol?$user_part\@$domain_part";
    if (preg_match("/^$regex$/",$email)) {
      return true;
    }
    return false;
  }
?>


Liebe Grüße
Anagura


Zuletzt bearbeitet von Anagura am Do 05.03.2009 23:17, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Fr 06.03.2009 15:01
Titel

Antworten mit Zitat Zum Seitenanfang

wenn ich das richtig sehe, brauchst du auch einen mail() befehl zum mailen. den haste wohl irgendwann irgendwo rausgelöscht. desweiteren is da noch einiges mehr inner grütze... zb. deine if $mailsenden_an abfragen. zum einen fragt man mit == an, zum anderen gäbe er bei allen emailadressen außer der 4ten deine fehlermeldung aus... u.s.w.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Anagura
Threadersteller

Dabei seit: 15.04.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 06.03.2009 16:16
Titel

Antworten mit Zitat Zum Seitenanfang

Hmm .. das if $mailsenden_an habe ich aus einem anderen Beispiel versucht hier einzubauen, hat aber nicht funktioniert.

Davor hatte ich statt dem if $mailsenden_an das stehen wo es nur ganz normal an einem Empfänger gegangen ist:
Code:
    if ( @mail("adresse1@sample.com",
         "Neue Nachricht",
         $eMail,
         "From: Probefahrt <>")) {
      echo "Ihre Nachricht wurde verschickt, vielen Dank!<br />";
    }
    else {
      echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
    }


Das hat auch geklappt und dann habe ich mich ans erweitern rangemacht.
Kann man den Code der an einen gegangen ist leichter erweitern? Da müsste ich aber dann den value = 1 von der ersten Adresse reinbekommen und ist das nicht ausgewählt, dann drunter den 2ten usw.

LG
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Fr 06.03.2009 16:47
Titel

Antworten mit Zitat Zum Seitenanfang

wie ich im ersten post schon sagte... du hast den mail-befehl "mail()" rausgelöscht... so kann nichts verschickt werden. so könnts gehen....:

Code:

$mailsenden_xan = "";
$mailsenden_an = $_POST['emailadresse'];
if ($mailsenden_an == "1") {
    $mailsenden_xan == "adresse1@sample.com";
   }
if ($mailsenden_an == "2") {
    $mailsenden_xan = "adresse2@sample.com";
   }
if ($mailsenden_an == "3") {
    $mailsenden_xan = "adresse3@sample.com";
   }
if ($mailsenden_an == "4") {
    $mailsenden_xan = "adresse4@sample.com";
   }

if ( @mail($mailsenden_xan,
         "Neue Nachricht",
         $eMail,
         "From: Probefahrt <>")) {
      echo "Ihre Nachricht wurde verschickt, vielen Dank!<br />";
    }
    else {
      echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
    }   
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anagura
Threadersteller

Dabei seit: 15.04.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 06.03.2009 17:07
Titel

Antworten mit Zitat Zum Seitenanfang

Ah, ich glaube langsam rattert es und ich versteh was du gemeint hast.
Schonmal danke! Also schicke ich sozusagen an value 2, 3, 4, 5, ... funktioniert es jetzt.
Doch die erste, also value 1, klappt nicht - da schreibt er eben die Fehler-Meldung "E-Mail Verkehr funktioniert zur Zeit nicht". * Ööhm... ja? *

Ich könnte value 1 freilassen und mit 2 beginnen, doch das ist ja auch nicht der Sinn der Sache, und irgendwie finde ich keine Unregelmäßigkeit. Hat noch jemand eine Idee?
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Fr 06.03.2009 17:11
Titel

Antworten mit Zitat Zum Seitenanfang

nein, das wäre n workaround. beschäftige dich mal mit debugging, wenn du in zukunft weiter was in solchen sachen machen willst... meine zuweisung bei value ==1 ist schlicht weg falsch *zwinker*

Code:

$mailsenden_xan == "adresse1@sample.com";


muss natürlich heißen:

Code:

$mailsenden_xan = "adresse1@sample.com";
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anagura
Threadersteller

Dabei seit: 15.04.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 06.03.2009 17:18
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo!

Ach ja .. übersehen

Ich sag mal DANKE * Applaus, Applaus *
Hast mir einen weiteren Tag herumdoktorn erspart ..

Nicht nur debugging, muss mich allgemein mehr mit solchen Sachen beschäftigen. Immer wenn sich Zeit findet, versuche ich ein bisschen weiterzukommen, aber mit den Abständen dazwischen vergisst man wieder einen teil .. naja egal
üben üben üben

Danke dir!
  View user's profile Private Nachricht senden
 
Ähnliche Themen Kontaktformular schickt Nachricht nicht ab
Kontaktformular bringt bei Empfänger [SPAM]...
Formular Pflichtfeld - schickt trotzdem ab
Falscher Empfänger in Thunderbird
Empfänger verstecken - Newsletter
Mail-Script an verschiedene Empfänger
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.