martin-s
Goto Top

Problem mit Skrip aus Mailformular

Hallo, ich bin gerade dabei für die Internetseite meiner Mutter ein Kontaktformular zu erstellen.
Nur leider wird es nicht abgesendet.
Ich habe hier den Code:
Danke

Martin

Hallo, ich bin gerade dabei für die Internetseite meiner Mutter ein Kontaktformular zu erstellen.
Nur leider wird es nicht abgesendet.
Ich habe hier den Code:
Danke

Martin


<html>
Wir danken für Ihre Nachricht!
<br />
zurück
</html>


<php?

mail("123456@aon.at",

"Firma: $_POST[Firma]",
"Name: $_POST[Name]",
"Adresse: $_POST[Adresse]",
"PLZ: $_POST[PLZ]",
"Ort: $_POST[Ort]",
"Telefon: $_POST[Telefon]",
"Telefax: $_POST[Telefax]",
"Steuernr.: $_POST[Steuernr.]",
"Email: $_POST[Email]",
"Internet: $_POST[Internet]",
"Kunde: $_POST[Kunde]",
"Interesse: $_POST[Intesse]",
"Malerei_Blei: $_POST[Bleiverglasung_Glasmalerei]",
"Fusing_Formenbau_Glas+: $_POST[Fusing_Formenbau_Glas+]",
"Tiffany: $_POST[Tiffany]",
"Sandstrahlen: $_POST[Sandstrahlen]",
"Perlen_Schmuck: $_POST[Perlen_Schmuck]",
"Glasbau_Zubehoer: $_POST[Glasbau_Zubehoer]",
"Glas_Facetten: $_POST[Glas_Facetten]",
"Lasertechnik: $_POST[Lasertechnik]",
"Fortbildung_Seminare $_POST[Fortbildung_Seminare]",
"Wuensche, Anregungen $_POST[Wuensche_Anregungen]",


)
code(c) by Martin Strassser
?>

Content-Key: 92768

Url: https://administrator.de/contentid/92768

Printed on: April 23, 2024 at 16:04 o'clock

Member: EvilMoe
EvilMoe Jul 23, 2008 at 19:34:46 (UTC)
Goto Top
Du musst die "Komma" auch in die anführungszeichen setzen sonst denkt die Funktion du übergibts ihm immer einen neuen Parameter.

Der 2. Prameter ist der Betreff der fehlt bei dir komplett. Dann kommt der Text. Nur halt die Kommer auch in anführunszeichen setzen,

Schau dir mal die Doku dazu an: http://de.php.net/manual/de/function.mail.php
Member: bytecounter
bytecounter Jul 23, 2008 at 19:43:25 (UTC)
Goto Top
Also das versteh ich jetzt überhaupt nicht... face-surprise

1. Braucht es zum Senden von Formulardaten nicht erstmal ein Formular??
2. mail() funktioniert so nicht
3. Wo ist die Datenvalidierung?
4. Erst eine "Erfolgreich"-Meldung und danach die Mail senden => solltest Du umgekehrt machen


vg
Bytecounter
Member: martin-s
martin-s Jul 24, 2008 at 04:57:00 (UTC)
Goto Top
1.

ja ich hab auch ein Formular: www.glashandel.co.at/kus/kontaktformular.php


2. wie dann??

3. was ist das?

4. hab ich geändert.

sry, aber ich bin auf diesem Gebiet föllig neu!


P.S.: ich habe mal einen neuen auch erstellt:


<?php

$empfaenger = "123456@aon.at";

$field1 = $_POST["Firma"];
$field2 = $_POST["Name"];
§field3 = $_POST["Adresse"];
$field4 = $_POST["PLZ"];
$field5 = $_POST["Ort"];
$field6 = $_POST["Telefon"];
$field7 = $_POST["Telefax"];
$field8 = $_POST["Steuernr."];
$field9 = $_POST["Email"];
$field10 = $_POST["Internet"];
$field11 = $_POST["Kunde"];
$field12 = $_POST["Interesse"];
$field13 = $_POST["Bleiverglasung_Glasmalerei"];
$field14 = $_POST["Fusing_Formenbau_Glas+"];
$field15 = $_POST["Tiffany"];
$field16 = $_POST["Sandstrahlen"];
$field17 = $_POST["Perlen_Schmuck"];
$field18 = $_POST["Glasbau_Zubehoer"];
$field19 = $_POST["Glas_Facetten"];
$field20 = $_POST["Lasertechnik"]:
$field21 = $_POST["Fortbildung_Seminare"];
$field22 = $_POST["Wuensche_Anregungen"];

$send = "

Guten Tag, Sie erhalten eine neue Anfrage von ". $_POST["Name"] .":

Firma: ". $_POST["Firma"] ."
Name: ". $_POST["Name"] ."
Adresse: ". $_POST["Adresse"] ."
PLZ / Ort: ". $_POST["PLZ"] ." ". $_POST["Ort"] ."
Telefon: ". $_POST["Telefon"] ."
Telefax: ". $_POST["Telefax"] ."
Steuernr.: ". $_POST["Steuernr."] ."
Email: ". $_POST["Email"] ."
Internet: ". $_POST["Internet"] ."
Kunde: ". $_POST["Kunde"] ."
Interesse: ". $_POST["Interesse"] ."

". $_POST["Name"] ." hat Interesse an:

Malerei_Blei: ". $_POST["Bleiverglasung_Glasmalerei"] ."
Fusing_Formenbau_Glas+: ". $_POST["Fusing_Formenbau_Glas+"] ."
Tiffany: ". $_POST["Tiffany"] ."
Sandstrahlen: ". $_POST["Sandstahlen"] ."
Perlen_Schmuck: ". $_POST["Perlen_Schmuck"] ."
Glasbau_Zubehör: ". $_POST["Glasbau_Zubehör"] ."
Glas_Facetten: ". $_POST["Glas_Facetten"] ."
Lasertechnik: ". $_POST["Lasertechnik"] ."
Fortbildung_Seminare: ". $_POST["Fortbildung_Seminare"] ."

". $_POST["Name"] ". honterlässt folgende Nachricht:

". $_POST["Wuensche_Anregungen"] ."

";

-->

if (mail($empfaenger, "Kontaktformular", $send, $fron))

{echo "Ihre Mail wurde erfolgreich abgesendet. Sie erhalten bald eine Antwort.":}
else
{echo "Bitte schaunen Sie nochmal nach, ob Sie alle Felder ausgefüllt haben.";}

?>
Member: bytecounter
bytecounter Jul 24, 2008 at 10:25:04 (UTC)
Goto Top
Hallo,

so sieht das schon viel besser aus face-smile

Wenn Du den Code als Code (s. Formatierungshilfe) eingeben würdest, könnte man dir einfacher antworten.
Denn Du kannst Dir die Zeilen ?? bis ?? sparen. Hier meine ich:

$field1 = ... 
... 
$field22 = ...

Du sprichst überall direkt $_POST an, daher brauchts das obige nicht.

Des Weiteren ist in Zeile ?? noch ein Fehler:

if (mail($empfaenger, "Kontaktformular", $send, $fron))  

$fron (soll vermutlich '$from' heißen), sind aber beide nirgends definiert. Daher noch an den Anfang einfügen:
$from = "From: $POST['Email']";  

Zur Datenvalidierung schau Dir mal meine Anleitung hier an:


vg
Bytecounter
Member: martin-s
martin-s Jul 24, 2008 at 10:47:53 (UTC)
Goto Top
Hallo,

danke für deine Antwort.

Ich habe den Code jetzt geändert, funktioniert aber leider noch immer nicht! face-sad

<?php


$empfaenger = "123456@aon.at";  
$from = "From: $POST['Email']";  



$send = '  
		Guten Tag, Sie erhalten eine neue Anfrage

		Firma:						'.$_POST["Firma"].'  
		Name:						'.$_POST["Name"].'  
		Adresse:					'.$_POST["Adresse"].'  
		PLZ / Ort:					'.$_POST["PLZ"].' '.$_POST["Ort"].'  
		Telefon:					'.$_POST["Telefon"].'  
		Telefax:					'.$_POST["Telefax"].'  
		Steuernr.:					'.$_POST["Steuernr"].'  
		Email:						'.$_POST["Email"].'  
		Internet:					'.$_POST["Internet"].'  
		Kunde:						'.$_POST["Kunde"].'  
		Interesse:					'.$_POST["Interesse"].'  
		Malerei_Blei:				'.$_POST["Bleiverglasung_Glasmalerei"].'  
		Fusing_Formenbau_Glas+:		'.$_POST["Fusing_Formenbau_Glas+"].'  
		Tiffany: 					'.$_POST["Tiffany"].'  
		Sandstrahlen: 				'.$_POST["Sandstahlen"].'  
		Perlen_Schmuck:				'.$_POST["Perlen_Schmuck"].'  
		Glasbau_Zubehör: 			'.$_POST["Glasbau_Zubehör"].'  
		Glas_Facetten:				'.$_POST["Glas_Facetten"].'  
		Lasertechnik:				'.$_POST["Lasertechnik"].'  
		Fortbildung_Seminare:		'.$_POST["Fortbildung_Seminare"].'  
		Wuensche_Anregugen:
		'$_POST["Wuensche_Anregungen"]'  
		';  



if  (mail($empfaenger, 'Neue E-Mail', $send, $from))  
    {
    echo "Ihre E-Mail wurd erfolgreich abgesendet. Sie erhalten bald eine Nachricht von uns.";  
        }
        else
        {
       echo "Bitte schauen Sie nochmal nach, ob Sie alle Felder ausgefuellt hast.";  
}


?>

Danke für eure Hilfe Martin
Member: bytecounter
bytecounter Jul 24, 2008 at 12:49:25 (UTC)
Goto Top
Was funktioniert denn nicht? Bekommst Du eine Fehlermeldung? Welche Nachricht erhälst Du nach dem Aufrufen des Scripts (also ist die Ausgabe Zeile 40 oder 44?

Poste bitte auch noch Dein Formular, falls da ein Fehler ist.
Member: martin-s
martin-s Jul 24, 2008 at 13:08:52 (UTC)
Goto Top
Ich bekomme nach absenden nur eine leere Seite und Email auch keine!

<style type="text/css">  
<!--
.Stil12 {font-family: Arial, Helvetica, sans-serif; font-size: 14px; }
.Stil15 {font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; }
.Stil17 {font-size: 14px}
.Stil18 {font-family: Arial, Helvetica, sans-serif;
	font-size: 18px;
	font-weight: bold;
}
.Stil4 {	font-size: 24px;
	font-weight: bold;
	color: #000099;
	font-family: Arial, Helvetica, sans-serif;
}
-->
</style>
<html>
<head>
<title>Strasser Glashandel - Kontaktformular</title>
</head>

<body>
<form name="email" method="post" action="php_kontakt.php">  
<table width="665" border="0" align="center">  
  <tr>
    <td width="659"><div align="center">  
      <p class="Stil4"><img src="img/logo.gif" alt="" width="720" height="117" /></p>  
      <p class="Stil4">Kontaktformular</p>  
    </div></td>
  </tr>
  <tr>
    <td><p align="center"><span class="Stil18">Flatschacher Straße 100<br />  
      9020 Klagenfurt<br />
      Tel.: 0463 411 73</span></p>
        <table width="681" border="0" align="center">  
          <tr>
            <td width="147" align="left" valign="top"><span class="Stil15">Firma:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <input name="Firma" type="text" id="Firma" size="65" />  
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Name:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <input name="Name" type="text" id="Name" size="65" />  
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Adresse:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <input name="Adresse" type="text" id="Adresse" size="65" />  
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">PLZ / Ort:</span></td>  
            <td width="60"><span class="Stil17">  
              <label>
              <input name="PLZ" type="text" id="PLZ" size="10" maxlength="8" />  
              </label>
            </span></td>
            <td width="199"><span class="Stil12"><span class="Stil17">  
              <input name="Ort" type="text" id="Ort" size="33" />  
            </span></span></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Telefon:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <input name="Telefon" type="text" id="Telefon" size="65" />  
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Telefax:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <input name="Telefax" type="text" id="Telefax" size="65" />  
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">UST-ST-Nr / EU-ID-Nr.:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <input name="Steuernr." type="text" id="Steuernr." size="65" />  
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Email:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <input name="Email" type="text" id="Email" size="65" />  
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Internet:</span></td>  
            <td colspan="3"><span class="Stil17">  
              <label>
              <input name="Internet" type="text" id="Internet" value="http://www." size="65" />  
              </label>
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Sind Sie Kunde?</span></td>  
            <td colspan="3"><p class="Stil12">  
                <label>
                <input type="radio" name="Kunde" value="ja" id="Kunde_0" />  
                  ja</label>
                <br />
                <label>
                <input type="radio" name="Kunde" value="nein" id="Kunde_1" />  
                  nein</label>
                <br />
              </p>
                <span class="Stil12">  
                <label></label>
              </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Ihr Interesse ist:</span></td>  
            <td colspan="3"><p class="Stil12">  
                <label>
                <input type="radio" name="interesse" value="privat" id="interesse_0" />  
                  privat</label>
                <br />
                <label>
                <input type="radio" name="interesse" value="gewerblich" id="interesse_1" />  
                  gewerblich</label>
                <br />
                <label>
                <input type="radio" name="interesse" value="informell" id="interesse_2" />  
                  informell</label>
                <br />
            </p></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Interesse an:</span></td>  
            <td colspan="2"><span class="Stil12">Bleiverglasung / Glasmalerei</span></td>  
            <td width="235"><span class="Stil12">  
              <label>
              <input type="checkbox" name="Bleiverglasung_Glasmalerei" id="Bleiverglasung_Glasmalerei" />  
              </label>
            </span></td>
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Fusing / Pate de Verre / Glas+</span></td>  
            <td><input name="Fusing_Formenbau_Glas+" type="checkbox" id="Fusing_Formenbau_Glas+" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Tiffany</span></td>  
            <td><input name="Tiffany" type="checkbox" id="Tiffany" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Sandstrahlen</span></td>  
            <td><input name="Sandstrahlen" type="checkbox" id="Sandstrahlen" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Perlen / Schmuck</span></td>  
            <td><input name="Perlen_Schmuck" type="checkbox" id="Perlen_Schmuck" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Glasbau und Zubehör</span></td>  
            <td><input name="Glasbau_Zubehoer" type="checkbox" id="Glasbau_Zubehoer" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Glas und Facetten</span></td>  
            <td><input name="Glas_Facetten" type="checkbox" id="Glas_Facetten" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Lasertechnik</span></td>  
            <td><input name="Lasertechnik" type="checkbox" id="Lasertechnik" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil17"></span></td>  
            <td colspan="2"><span class="Stil12">Fortbildung / Seminare</span></td>  
            <td><input name="Fortbildung_Seminare" type="checkbox" id="Fortbildung_Seminare" /></td>  
          </tr>
          <tr>
            <td align="left" valign="top"><span class="Stil15">Wünsche, Anregungen:</span></td>  
            <td colspan="3"><span class="Stil12">  
              <label>
              <textarea name="Wuensche, Anregungen" id="Wuensche, Anregungen" cols="45" rows="5"></textarea>  
              </label>
            </span></td>
          </tr>
        </table>
      <p>&nbsp;</p></td>
  </tr>
  <tr>
    <td><label>
        <div align="center">  
          <input type="submit" name="button" id="button" value="Senden" />  
          <input type="reset" name="button2" id="button2" value="Zurücksetzen" />  
        </div>
      </label></td>
  </tr>
</table>
</form>
</body>
</html>

Danke

Martin
Member: bytecounter
bytecounter Jul 24, 2008 at 14:11:59 (UTC)
Goto Top
Das scheint soweit ok. Was hast Du für ein Provider und auf was für einem Server (Win/Unix/Linux) liegt die Seite?

Probier einfach mal eine manuelle Mail zu senden. Erstell eine neue Datei (z. B. mail.php) mit folgendem code:

<?php
$recipient = "meine_mail@mein_host.tld";  
$subject   = "Testmail";  
$content   = "Inhalt meiner Testmail";  
$sender   = "From: automailer@mein_host.tdl";  

echo "<p>Sende Mail</p>";  
$mailsuccess = mail ($recipient, $subject, $content, $sender);

if ($mailaccess) {
  echo "<p>Mailversand scheint ok</p>";  
}
else {
  echo "<p>Fehler beim Mailversand</p>";  
}
?>

Wenn das auch nicht klappt, dann liegt es an anderen Einstellungen / Voraussetzungen.
Member: martin-s
martin-s Jul 24, 2008 at 14:33:50 (UTC)
Goto Top
Webserver ist Windows 2003

Provider: Telekom Austria AG

Mail funktioniert!!

Ich weis jetzt auch nicht mehr an was es liegt!
Member: bytecounter
bytecounter Jul 24, 2008 at 16:46:58 (UTC)
Goto Top
Anscheinend hab ich meinem letzten Kommentar nicht gespeichert face-sad
Also nochmal:

Wenn das geklappt hat, dann ist es ein (Flüchtigkeits-)fehler in Deinem Script. Würde das Ganze nun Schritt für Schritt testen:

Ändere Deine PHP erstmal wie folgt ab:
<?php

$empfaenger = "123456@aon.at";  
$from = "From: $POST['Email']";  

$send = 'Guten Tag, Sie erhalten eine neue Anfrage';  

if  (mail($empfaenger, 'Neue E-Mail', $send, $from))  
    {
    echo "Ihre E-Mail wurd erfolgreich abgesendet. Sie erhalten bald eine Nachricht von uns.";  
        }
        else
        {
       echo "Bitte schauen Sie nochmal nach, ob Sie alle Felder ausgefuellt hast.";  
}

?>

Bei dem Script solltest Du eine Mail erhalten, allerdings eben nur mit einem Satz. Aber das ist ja nur zum Test. Wenn das läuft, dann ersetzt Du Zeile 6:

...
$send = "\nGuten Tag, Sie erhalten eine neue Anfrage\n\n";  
$send .= "Firma:                 ".$_POST["Firma"]."\n";  
$send .= "Name:                ".$_POST["Name"]."\n";  

...

Funktioniert das auch, fügst Du die weiteren Felder einfach hinzu. Dann sollte das funktionieren.
Sollte er Dir keine Zeilenumbrüche in der Mail darstellen (was ich nicht glaube), ersetzt Du \n durch \r\n.
Member: martin-s
martin-s Jul 24, 2008 at 20:09:23 (UTC)
Goto Top
OK Danke,

werde ich morgen machen!!
Member: martin-s
martin-s Jul 25, 2008 at 04:47:06 (UTC)
Goto Top
Hallo,

bedauerlicher weiße hat nicht einmal der 1. Code funktioniert. face-sad

Es ist immer der gleiche Fehler, er sendet nicht, und der Text wird nicht angezeigt.


Danke für eure Hilfe

Martin
Member: bytecounter
bytecounter Jul 25, 2008 at 07:21:33 (UTC)
Goto Top
OK, wenn er in dem Testscript die Mail versendet hat, dann muss es an dem Code liegen.
Eventuell blockiert der Webserver die Mailaddy des Absenders. Allerdings müsste mail trotzdem einen Wert zurückliefern - sprich, die if{} wird offensichtlich auch nicht ausgeführt.

Welche php-Version läuft auf dem Server? Das bekommst Du mit phpinfo() raus.

Ansonsten ändere das mal ab:

Zeile 4:
$from = "From: deine_mail@deine_domain.at";


Zeile 8-15:
$mailsuccess = mail ($empfaenger, 'Neue E-Mail', $send, $from);  
if ($mailsuccess) {
   echo "Mail wurde versendet";  
}
else {
   echo "Fehler beim Mailversand";  
}
Member: martin-s
martin-s Jul 25, 2008 at 07:50:09 (UTC)
Goto Top
Version: PHP 4.4.0

Hab ich gemacht. Funktionert leider auch nicht.


Danke für deine Hilfe!!!
Member: bytecounter
bytecounter Jul 25, 2008 at 09:12:05 (UTC)
Goto Top
Nu mal eine dumme Frage: Das Testscript mail.php von gestern, 16:11 Uhr lief aber?

Hast Du das noch? Dann schicke es mir bitte unverändert (also mit Mailaddy mit der es funktioniert hat, etc.) per IM zu. Dann schau ich mir das mal an.
Member: bytecounter
bytecounter Jul 25, 2008 at 13:53:27 (UTC)
Goto Top
So,

das Script ist korrekt, wie bereits per PM (hier nur nochmal für alle) scheint Dein Mailserver nicht zulässige Mailabsender (also Domains, die nicht zum Server "gehören") abzuweisen.

Daher kannst Du als Absender nicht die Kundenmailadresse nehmen, sondern musst Deine eigene (oder erstellst z. B. eine noreply@yourdomain.tld) als Absender eintragen.

Um auf eingehende Formularanfragen trotzdem mit der "Antworten"-Funktion des Mailprogramms zu können, kannst du das über den Mailheader regeln:

<?php
// Hinter $from = ... einfügen:
$reply = $_POST['Email'];  

$header  = "From: Mailform <$form>\n";  
$header .= "Reply-to: $reply\n";  

// Und dann ändern wir mail() noch ab:
$mailsuccess = mail ($empfaenger, 'Neue E-Mail', $send, $header);  

Mit Reply-To wird dem Mailprogramm mitgeteilt, wohin es eine Antwort schicken soll. Diese kann und darf durchaus von der Absenderadresse abweichen.

vg
Bytecounter
Member: martin-s
martin-s Jul 25, 2008 at 14:16:29 (UTC)
Goto Top
Hallo,

ich weiß nicht an was es liegt, aber es funktioniert noch immer nicht :angry:

vg

Martin