Hallo liebe Forengemeinde!
Ich verzweilfe langsam an einem recht interessanten Problem...
Es geht um ein Anfrageformular mit php mail(), welches ab und zu nicht sendet!
Woran kann so etwas liegen? Servertimeout beim Absenden (Benutzer haben Bestätigung bekommen, das gesendet wurde, im Posteingang kam aber nichts an) oder Fehler im Script? Habe das ganze mehrfach durchgekaut und finde den Fehler nicht (falls es einen gibt?). Ich hänge unten das Script mit an (Einmal das Formular und einmal das php Script), damit ihr euch ein Bild machen könnt.
Vielen Dank schon im Vorraus für eure Hilfe! =)
Erste Seite des Formulars, um den Anfragetyp herauszufinden (Privat/Firma/Schule)
<html>
<head>
<title>Anfrageformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META NAME="Copyright" CONTENT="Foto Schuster">
<META NAME="Author" CONTENT="Foto Schuster">
<META NAME="Subject" CONTENT="Fotograf Wien">
<META NAME="Language" CONTENT="DE">
<META NAME="Robots" CONTENT="index,follow">
<style type="text/css">
.mydiv {font-family: verdana; font-size: 12 px; color: #FFFFFF;}
table {font-size:12px; color:white;}
td {font-size:12px; color:white;}
</style>
<link rel="stylesheet" href=".././html/mystyle.css" type="text/css">
<script type="text/javascript">
function ausw (select) {
var wert = select.options[select.options.selectedIndex].value;
if (wert == "leer") {
select.form.reset();
return;
} else {
location.href = wert;
select.form.reset();
}
}
function ausgrauen_mitarb () {
if (document.anfrage.mitarb.checked == true) {
var deaktiviert = false;
} else {
var deaktiviert = true;
}
for (var i = 0; i < document.anfrage.anz_pers_mitarb.length; i++) {
document.anfrage.anz_pers_mitarb.disabled = deaktiviert;
}
}
function ausgrauen_gruppe () {
if (document.anfrage.gruppe.checked == true) {
var deaktiviert = false;
} else {
var deaktiviert = true;
}
for (var i = 0; i < document.anfrage.anz_pers_gruppe.length; i++) {
document.anfrage.anz_pers_gruppe.disabled = deaktiviert;
}
}
var sonst = 1;
function clearTA() {
if (sonst == 1) {
sonst--;
this.document.anfrage.sonstiges.value="";
}
}
function chkFormular () {
if (document.anfrage.nachname.value == "") {
alert("Bitte Ihren Nachnamen eingeben!");
document.anfrage.nachname.focus();
return false;
}
if (document.anfrage.email.value == "") {
alert("Bitte Ihre E-Mail-Adresse eingeben!");
document.anfrage.email.focus();
return false;
}
if (document.anfrage.email.value.indexOf("@") == -1) {
alert("Keine E-Mail-Adresse!");
document.anfrage.email.focus();
return false;
}
if (document.anfrage.email.value.indexOf(".") == -1) {
alert("Keine E-Mail-Adresse!");
document.anfrage.email.focus();
return false;
}
}
</script>
</head>
<body bgcolor="#565758">
<div class="mydiv" style="color:#FFFFFF; font-size:12px;">
<form name="anfrage" action="senden.php" method="POST" onsubmit="return chkFormular()">
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$section = array();
$section['firma'] = 'firma.php';
$section['privat'] = 'privat.php';
$section['kg_schule'] = 'kg_schule.php';
?>
<fieldset>
<legend>Bitte Anfragetyp auswählen</legend>
<table>
<tr>
<td>
<select name="kundentyp" size="1" onchange="ausw(this);">
<option name="leer" value="leer" selected="selected">Bitte auswählen!</option>
<option name="Firma" value="index.php?section=firma">Anfrage für Firmen</option>
<option name="Privatperson" value="index.php?section=privat">Anfrage für Privatpersonen</option>
<option name="Kindergarten-Schule" value="index.php?section=kg_schule">Anfrage für Kindergarten und Schulen</option>
</select>
</td>
</tr>
</table>
</fieldset>
<?php
if (isset($_GET['section'], $section[$_GET['section']])) {
include $section[$_GET['section']];
}
?>
</form>
</div>
<body>
</html>
Alles anzeigen
Hier als Beispiel der Formularteil für Firmen (die anderen funktionieren analog mit anderen Feldern), er wird per DropDown Menü in die index.php?section geladen (php Frames wenn man so sagen möchte)
<fieldset>
<legend>Gewünschte Informationen</legend>
<table>
<tr>
<td>
<input type="checkbox" name="info[]" value="Presseportraits"> Presseportraits (auf Wunsch mit speziellen Hintergrund)
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="info[]" value="Reportagen"> Reportagen (Events, Firmenfeiern, Geschäftseröffnungen, etc.)
</td>
</tr>
</table>
<table>
<tr>
<td>
<input type="checkbox" name="mitarb" value="mitarbeiteraufnahmen" onclick="ausgrauen_mitarb();"> Mitarbeiteraufnahmen
</td>
<td>
<select name="anz_pers_mitarb" size="1" disabled>
<option value="einer nicht angegebenen Anzahl an">Bitte auswählen</option>
<option value="0-10">0-10 Personen</option>
<option value="10-20">10-20 Personen</option>
<option value="20-30">20-30 Personen</option>
<option value="30-40">30-40 Personen</option>
<option value="40-50">40-50 Personen</option>
<option value="50-100">50-100 Personen</option>
<option value="100-150">100-150 Personen</option>
<option value="150-200">150-200 Personen</option>
<option value="200-250">200-250 Personen</option>
<option value="250-300">250-300 Personen</option>
<option value="300-350">300-350 Personen</option>
<option value="350-400">350-400 Personen</option>
<option value="400-450">400-450 Personen</option>
<option value="450-500">450-500 Personen</option>
<option value="500-550">500-550 Personen</option>
<option value="550-600">550-600 Personen</option>
<option value="600-650">600-650 Personen</option>
<option value="650-700">650-700 Personen</option>
<option value="700-750">700-750 Personen</option>
<option value="750-800">750-800 Personen</option>
<option value="800+">mehr als 800 Personen</option>
</select>
</td>
</tr>
<td>
<input type="checkbox" name="gruppe" value="gruppe" onclick="ausgrauen_gruppe();"> Großgruppenprojekte
</td>
<td>
<select name="anz_pers_gruppe" size="1" disabled>
<option value="einer nicht angegebenen Anzahl an">Bitte auswählen</option>
<option value="0-10">0-10 Personen</option>
<option value="10-20">10-20 Personen</option>
<option value="20-30">20-30 Personen</option>
<option value="30-40">30-40 Personen</option>
<option value="40-50">40-50 Personen</option>
<option value="50-100">50-100 Personen</option>
<option value="50-100">50-100 Personen</option>
<option value="100-150">100-150 Personen</option>
<option value="150-200">150-200 Personen</option>
<option value="200-250">200-250 Personen</option>
<option value="250-300">250-300 Personen</option>
<option value="300-350">300-350 Personen</option>
<option value="350-400">350-400 Personen</option>
<option value="400-450">400-450 Personen</option>
<option value="450-500">450-500 Personen</option>
<option value="500-550">500-550 Personen</option>
<option value="550-600">550-600 Personen</option>
<option value="600-650">600-650 Personen</option>
<option value="650-700">650-700 Personen</option>
<option value="700-750">700-750 Personen</option>
<option value="750-800">750-1000 Personen</option>
<option value="1000+">mehr als 1000 Personen</option>
</select>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Ausgabemedium</legend>
<table>
<tr>
<td><input type="checkbox" name="ausgabe[]" value="96dpi"> 96dpi 13/18cm digital (Für Homepage, Internet, E-Mail)</td>
</tr>
<tr>
<td><input type="checkbox" name="ausgabe[]" value="300dpi"> 300dpi 13/18cm digital (Druckvorlage bzw. zum Ausbelichten)</td>
</tr>
<tr>
<td><input type="checkbox" name="ausgabe[]" value="Papierfotos"> Papierfotos (bis 20lfm am Stück, Höhe max. 1.20m)</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Ihr Anliegen (optional):</legend>
<table>
<tr>
<td><textarea onfocus="javascript:clearTA()" name="sonstiges" rows="10" cols="50">Sonstige Informationen bitte hier eingeben.</textarea></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Anfragetyp: <b>Firma</b></legend>
<table>
<tr>
<td>
<input type="hidden" name="anfragetyp" value="Firma">
Anrede und Titel:
</td>
<td>
<input type="text" size="40" maxlength="40" name="anrede">
</td>
</tr>
<tr>
<td>
Vorname:
</td>
<td>
<input type="text" size="40" maxlength="40" name="vorname">
</td>
</tr>
<tr>
<td>
Nachname*:
</td>
<td>
<input type="text" size="40" maxlength="40" name="nachname">
</td>
</tr>
<tr>
<td>
Firma:
</td>
<td>
<input type="text" size="40" maxlength="40" name="firma">
</td>
</tr>
<tr>
<td>
Adresse:
</td>
<td>
<input type="text" size="40" maxlength="40" name="adresse">
</td>
</tr>
<tr>
<td>
PLZ, Ort:
</td>
<td>
<input type="text" size="40" maxlength="40" name="plz">
</td>
</tr>
<tr>
<td>
Telefonnummer:
</td>
<td>
<input type="text" size="40" maxlength="40" name="telefon">
</td>
</tr>
<tr>
<td>
E-Mail*:
</td>
<td>
<input type="text" size="40" maxlength="40" name="email">
</td>
</tr>
<tr>
<td>
<font size="2">*Pflichtfelder</font>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><button style="font-size:14px; margin-top:2px;" type="submit">Anfrage absenden</button></td>
</tr>
</table>
</fieldset>
Alles anzeigen
Und zu guter letzter, der php Teil - hier vermute ich den Fehler, ich kann ihn nur leider nicht finden!
<html>
<head>
<title>Anfrage versendet</title>
<link rel="stylesheet" href=".././html/mystyle.css" type="text/css">
<style type="text/css">
.mydiv {font-family: verdana; font-size: 12 px; color: #FFFFFF;}
table {font-size:12px; color:white;}
td {font-size:12px; color:white;}
</style>
</head>
<body bgcolor="#565758">
<div class="mydiv" style="color:#FFFFFF; font-size:12px;">
<?php
if (!isset($_POST['anfragetyp'])) {
echo ("Fehler bei der Übermittlung des Formulars. Bitte gehen Sie zurück <a href='http://www.fotoschuster.at/anfrage/index.php'>zum Formular</a> und senden Sie es erneut.");
die();
} else {
$typ = $_POST['anfragetyp'];
$anrede = $_POST['anrede'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$firma = $_POST['firma'];
$adresse = $_POST['adresse'];
$plz = $_POST['plz'];
$telefon = $_POST['telefon'];
$email = $_POST['email'];
$from = "From: ".$nachname." ".$vorname." <".$email.">\n";
$from .= "Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable\n";
if ($typ=="Firma") {
$interesse = implode(", ", $_POST['info']);
if (isset($_POST['mitarb'])) {
$mitarbeiterfoto = "Mitarbeiterfotos von ".$_POST['anz_pers_mitarb']." Mitarbeitern.\n";
} else {
$mitarbeiterfoto = "";
}
if (isset($_POST['gruppe'])) {
$gruppenfoto = "Ein Gruppenfoto von ".$_POST['anz_pers_gruppe']." Personen\n";
} else {
$gruppenfoto = "";
}
$ausg = implode(", ", $_POST['ausgabe']);
$mail = " Anfragetyp: ".$typ."\n
Von: ".$anrede." ".$nachname." ".$vorname."\n
".$firma."
".$adresse."
".$plz."\n
".$telefon."
".$email."\n
Kunde interessiert sich für:
".$interesse."
".$gruppenfoto."
".$mitarbeiterfoto."\n
Interesse an folgenden Ausgabemedien: ".$ausg."\n
Sonstige Informationen:
".$_POST['sonstiges']."\n";
mail("test@test.at","Anfrage für Firma ".$firma." von ".$nachname." ".$vorname,$mail,$from);
}
elseif ($typ=="Privatperson") {
$interesse = implode(", ", $_POST['info']);
$ausg = implode(", ", $_POST['ausgabe']);
if (isset($_POST['gruppe'])) {
$gruppenfoto = "Ein Gruppenfoto von ".$_POST['anz_pers_gruppe']." Personen\n";
} else {
$gruppenfoto = "";
}
if (isset($_POST['gutschein'])) {
$gutscheine = "Der Kunde benötigt Informationen zu Gutscheinen/benötigt Gutscheine\n";
} else {
$gutscheine = "";
}
$mail = " Anfragetyp: ".$typ."\n
Von: ".$anrede." ".$nachname." ".$vorname."\n
".$firma."
".$adresse."
".$plz."\n
".$telefon."
".$email."\n
Kunde interessiert sich für:
".$interesse."\n
".$gruppenfoto."\n
".$gutscheine."\n
Interesse an folgenden Ausgabemedien:
".$ausg."\n
Sonstige Informationen:
".$_POST['sonstiges']."\n";
mail("test@test.at","Anfrage für Privatperson von ".$nachname." ".$vorname,$mail,$from);
}
elseif ($typ=="Kindergarten-Schule") {
$interesse = implode(", ", $_POST['info']);
$ausg = implode(", ", $_POST['ausgabe']);
$mail = " Anfragetyp: ".$typ."\n
Von: ".$anrede." ".$nachname." ".$vorname."\n
".$firma."
".$adresse."
".$plz."\n
".$telefon."
".$email."\n
Anzahl der Gruppen: ".$_POST['anz_gruppen']."
Anzahl der Kinder pro Gruppe (ca.): ".$_POST['anz_kinder']."
Kunde interessiert sich für:
".$interesse."\n
Wunschfototermin liegt zwischen:
".$_POST['termin_beginn']." und ".$_POST['termin_ende']."
Wunsch-Wochentag ist ".$_POST['wochentag']."\n
Benötigt Informationen bezüglich:
".$ausg."\n
Sonstige Informationen:
".$_POST['sonstiges']."\n";
mail("test@test.at","Anfrage für Kindergarten/schule ".$firma." von ".$nachname." ".$vorname,$mail,$from);
}
else {
echo ("<p align='center'>Ein Fehler ist aufgetreten. Bitte gehen Sie zurück <a href='http://www.fotoschuster.at/anfrage/index.php'>zum Formular</a> und senden Sie es erneut.</p>");
}
echo ("<h1 align='center'>Vielen Dank für Ihre Anfrage!</h1><p align='center'>Wir werden sobald wie möglich Kontakt zu Ihnen aufnehmen.<br><a href='javascript:self.close()'>Fenster schließen</a></p>");
}
?>
</div>
</body>
</html>
Alles anzeigen
Nochmal lieben dank!
lg
Stefan