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 .. |
|
|
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ü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ä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>
</td>
</tr>
<!--ende to-->
<!--anfang Kontaktdaten-->
<tr>
<td colspan="2">
<h6>Kontaktdaten</h6>
</td>
<td>
</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>
</td>
</tr>
<!--ende Anrede-->
<!--anfang Titel-->
<tr>
<td><strong>
Titel:
</strong></td>
<td>
<input name="Titel" type="text" value="<?=$_POST['Titel']; ?>" /></td>
<td>
</td>
</tr>
<!--ende Titel-->
<!--anfang vorName-->
<tr>
<td><strong>
Vorname: *
</strong></td>
<td>
<input name="vorName" type="text" value="<?=$_POST['vorName']; ?>" /></td>
<td>
</td>
</tr>
<!--ende vorName-->
<!--anfang nachName-->
<tr>
<td><strong>
Nachname: *
</strong></td>
<td><input name="nachName" type="text" value="<?=$_POST['nachName']; ?>" /></td>
<td>
</td>
</tr>
<!--ende nachName-->
<!--anfang Firma-->
<tr>
<td><strong>
Firma:
</strong></td>
<td><input name="Firma" type="text" value="<?=$_POST['Firma']; ?>" /></td>
<td>
</td>
</tr>
<!--ende Firma-->
<!--anfang Strasse-->
<tr>
<td><strong>
Straße: *
</strong></td>
<td><input name="Strasse" type="text" value="<?=$_POST['Strasse']; ?>" /></td>
<td>
</td>
</tr>
<!--ende Strasse-->
<!--anfang PLZ-->
<tr>
<td><strong>
PLZ: *
</strong></td>
<td><input name="PLZ" type="text" value="<?=$_POST['PLZ']; ?>" /></td>
<td>
</td>
</tr>
<!--ende PLZ-->
<!--anfang Ort-->
<tr>
<td><strong>
Ort: *
</strong></td>
<td><input name="Ort" type="text" value="<?=$_POST['Ort']; ?>" /></td>
<td>
</td>
</tr>
<!--ende Ort-->
<!--anfang Ort-->
<tr>
<td><strong>
Telefon:
</strong></td>
<td><input name="Telefon" type="text" value="<?=$_POST['Telefon']; ?>" /></td>
<td>
</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>
</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>
</td>
</tr>
<!--ende Anmerkungen-->
<tr>
<td colspan="2">
<div align="center">
<input name="senden" type="submit" value="Senden" />
</div>
</td>
<td> </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
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Fr 06.03.2009 15:01
Titel
|
|
|
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.
|
|
|
|
|
Anzeige
|
|
|
Anagura
Threadersteller
Dabei seit: 15.04.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 06.03.2009 16:16
Titel
|
|
|
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
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Fr 06.03.2009 16:47
Titel
|
|
|
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 />";
}
|
|
|
|
|
|
Anagura
Threadersteller
Dabei seit: 15.04.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 06.03.2009 17:07
Titel
|
|
|
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".
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?
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Fr 06.03.2009 17:11
Titel
|
|
|
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
Code: |
$mailsenden_xan == "adresse1@sample.com";
|
muss natürlich heißen:
Code: |
$mailsenden_xan = "adresse1@sample.com";
|
|
|
|
|
|
Anagura
Threadersteller
Dabei seit: 15.04.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 06.03.2009 17:18
Titel
|
|
|
Hallo!
Ach ja .. übersehen
Ich sag mal DANKE
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!
|
|
|
|
|
|
|
|
Ä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
|
|