Auch wenn der Thread ein wenig älter ist, stehe ich vor dem gleichen Problem.
Ich habe das Formular insoweit angepasst, das die gesammelten daten per email verschickt werden sollen.
Allerdings sind die Variablen nach dem Abschicken des Formulares leer.
Die Überprüfung der Pflichtfelder funktioniert, allerdings funktioniert mittlerweile auch das versenden per email nicht mehr.
error_reporting ist eingeschaltet, gibt aber keine Fehler raus.
PHP-Code:
echo '<pre>';
print_r($HTTP_POST_VARS);
echo '</pre>';
gibt nur Array {
}
raus.
Der PHP Teil des Formulares sieht so aus:
PHP-Code:
error_reporting(E_ALL ^ E_NOTICE);
$script = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"];
$errorFields = array('firstname',
'telefone',
'lastname',
'strasse',
'plz_ort',
'email'
);
for($x=0;$x<count($errorFields);$x++)
{
$errorClass[$errorFields[$x]] = 'inputField';
}
if(isset($HTTP_POST_VARS['submit']))
{
$error = FALSE;
foreach($errorFields as $key => $value)
{
if(empty($HTTP_POST_VARS[$errorFields[$key]]))
{
$error = TRUE;
$errorClass[$value] = 'errorField';
$errorPicture[$value] = '<img src="achtung_klein.gif"> ';
}
}
}
if($_GET['check'] == "TRUE")
{
$errorMessage = '<table width="100%" class="errorTable"><tr><td><b>
Ihre Anmeldung war erfolgreich.</b><br><br>
Vielen Dank dafür. Sofern Sie eine Email Adresse angegeben haben,
erhalten eine bestätigung für Ihre Anmeldung. Andernfalls warten Sie auf die Mitgliedsunterlagen.</td></tr></table><br>';
if(isset($HTTP_POST_VARS['submit'])){
if($error == TRUE)
{
$errorMessage = '<table width="100%" class="errorTable"><tr><td>
<img src="achtung_gross.gif"></td><td><b>Achtung!</b><br>
Es ist zu einem Fehler gekommen. Bitte füllen Sie alle
farblich markierten Pflichtfelder aus.</td></tr></table><br>';
}
else
{
// Alles ist in Ordnung
// Daten können gespeichert werden
$betreff = "Keine Ahnung irgendwas";
// Email zusammensetzen
$empfaenger = "irgendeine@email.adresse"; // Empfänger Adresse
// Jetzt die eigentlich Nachricht
$nachricht = '
<html>
<head>Anmeldung</head>
<body>
<p align="left">Hallo, mein Name ist '.$HTTP_POST_VARS["firstname"].' '.$HTTP_POST_VARS["lastname"].'. Ich möchte mich gerne Ihrem Schwimmverein anschliessen.</p>
<p align="left">Anrede: '.$HTTP_POST_VARS["gender"].'</p>
<p align="left">Strasse: '.$HTTP_POST_VARS["strasse"].'</p>
<p align="left">PLZ / Ort: '.$HTTP_POST_VARS["plz_ort"].'</p>
<p align="left">Meine Telefonnummer lautet: '.$HTTP_POST_VARS["telefone"].'</p>
<p align="left">Handy: '.$HTTP_POST_VARS["mobilephone"].'</p>
<p align="left">Meine Emailadresse: '.$HTTP_POST_VARS["email"].'</p>
</body>
</html>
';
// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// zusätzliche Header
$header .= 'From: noreply@ist_egal.de' . "\r\n";
# Anti-header-injection
foreach($_REQUEST as $fields => $value) if(eregi("TO:", $value) || eregi("CC:", $value) || eregi("CCO:", $value) || eregi("Content-Type", $value)) exit("ERROR: Code injection attempt denied! Please don't use the following sequences in your message: 'TO:', 'CC:', 'CCO:' or 'Content-Type'.");
mail($empfaenger, $betreff, $nachricht, $header);
}
// Seite neu laden und Hinweis anzeigen
header("Location: $script?check=TRUE");
}
}
Das Formular so:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Formular</title>
<link rel="stylesheet" type="text/css" href="formStyle.css">
</head>
<body>
<FORM action="<?PHP echo $script; ?>" method=post>
<table width="420" border=0 align="center" cellPadding=0 cellSpacing=0>
<TR>
<TD bgcolor="#000000" ><IMG height=1 src="transparent.gif" alt =""width=1></TD>
</TR>
<TR>
<TD height=2></TD>
</TR>
<TR>
<TD height=18 class=headlineweiss>
<div align="center"><strong>Anmeldung zum Schwimmen</strong></div>
</TD>
</TR>
</table>
<!-- Formular Anfang -->
<TABLE width="420" align="center" border="0" class="table">
<TR>
<TD colSpan=4>
<div align="justify"><br>
Mit dem Ausfüllen dieses Formulars möchte ich gerne in den<br />
Schwimmverein eintreten<br><br></div>
</TD>
</TR>
<TR>
<TD colSpan=4><?PHP echo $errorMessage; ?></TD>
</TR>
<TR>
<TD align=center colSpan=4></TD>
</TR>
<TR>
<TH align=left><?PHP echo $errorPicture['gender']; ?>Anrede:</TH>
<TD colSpan=3>
<SELECT size="1" name="gender" class="<?PHP echo $errorClass['gender']; ?>">
<OPTION value="" <?PHP if(empty($HTTP_POST_VARS['gender'])) echo 'selected'; ?>>Bitte auswählen</OPTION>
<OPTION value="3" <?PHP if($HTTP_POST_VARS['gender'] == "3") echo 'selected'; ?>>Dr.</OPTION>
<OPTION value="2" <?PHP if($HTTP_POST_VARS['gender'] == "2") echo 'selected'; ?>>Frau</OPTION>
<OPTION value="1" <?PHP if($HTTP_POST_VARS['gender'] == "1") echo 'selected'; ?>>Herr</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<TH align=left><?PHP echo $errorPicture['firstname']; ?>Vorname:*</TH>
<TD><INPUT class="<?PHP echo $errorClass['firstname']; ?>" name="firstname" value="<?PHP echo $HTTP_POST_VARS['firstname']; ?>"></TD>
<TH align=left><?PHP echo $errorPicture['lastname']; ?>Nachname:*</TH>
<TD><INPUT class="<?PHP echo $errorClass['lastname']; ?>" name="lastname" value="<?PHP echo $HTTP_POST_VARS['lastname']; ?>"></TD>
</TR>
<TR>
<TH align="left"><?PHP echo $errorPicture['strasse']; ?>Strasse:*</TH>
<td><input class="<?PHP echo $errorClass['strasse']; ?>" name="strasse" value="<?PHP echo $HTTP_POST_VARS['strasse']; ?>"></td>
<th align="left"><?PHP echo $errorPicture['plz_ort']; ?>PLZ / Ort:*</th>
<td><input class="<?PHP echo $errorClass['plz_ort']; ?>" name="plz_ort" value="<?PHP echo $HTTP_POST_VARS['plz_ort']; ?>"></td>
</TR>
<TR>
<TH align=left><?PHP echo $errorPicture['telefone']; ?>Telefon:*</TH>
<TD><INPUT class="<?PHP echo $errorClass['telefone']; ?>" name="telefone" value="<?PHP echo $HTTP_POST_VARS['telefone']; ?>"></TD>
<TH align=left>Fax:</TH>
<TD><INPUT class="inputField" name="faximile" value="<?PHP echo $HTTP_POST_VARS['faximile']; ?>"></TD>
</TR>
<TR>
<TH align=left>Mobil:</TH>
<TD><INPUT class="inputField" name="mobilephone" value="<?PHP echo $HTTP_POST_VARS['mobilephone']; ?>"></TD>
<TH align=left><?PHP echo $errorPicture['email']; ?>Email:*</TH>
<TD><INPUT class="<?PHP echo $errorClass['email']; ?>" name="email" value="<?PHP echo $HTTP_POST_VARS['email']; ?>"></TD>
</TR>
<TR>
<TD align=center colSpan=4><HR></TD>
</TR>
<TR>
<TD align=right colSpan=4>
<INPUT name="submit" type="submit" value="Absenden" class="button">
</TD>
</TR>
</TABLE>
<!-- Formular Ende -->
</FORM>
</body>
</html>
Packe ich den Teil mit für das verschicken der Email unter die Nachricht, das die daten erfolgreich verschickt wurden, bekomme ich zwar eine Email, allerdings ohne die Daten die über das Kontaktformular eingegeben wurden:
PHP-Code:
if($_GET['check'] == "TRUE")
{
$errorMessage = '<table width="100%" class="errorTable"><tr><td><b>
Ihre Anmeldung war erfolgreich.</b><br><br>
Vielen Dank dafür. Sofern Sie eine Email Adresse angegeben haben,
erhalten eine bestätigung für Ihre Anmeldung. Andernfalls warten Sie auf die Mitgliedsunterlagen.</td></tr></table><br>';
$betreff = "Keine Ahnung irgendwas";
// Email zusammensetzen
$empfaenger = "XXXX@XXXX.XX"; // Empfänger Adresse
// Jetzt die eigentlich Nachricht
$nachricht = '
<html>
<head>Anmeldung</head>
<body>
<p align="left">Hallo, mein Name ist '.$HTTP_POST_VARS["firstname"].' '.$HTTP_POST_VARS["lastname"].'. Ich möchte mich gerne Ihrem Schwimmverein anschliessen.</p>
<p align="left">Anrede: '.$HTTP_POST_VARS["gender"].'</p>
<p align="left">Strasse: '.$HTTP_POST_VARS["strasse"].'</p>
<p align="left">PLZ / Ort: '.$HTTP_POST_VARS["plz_ort"].'</p>
<p align="left">Meine Telefonnummer lautet: '.$HTTP_POST_VARS["telefone"].'</p>
<p align="left">Handy: '.$HTTP_POST_VARS["mobilephone"].'</p>
<p align="left">Meine Emailadresse: '.$HTTP_POST_VARS["email"].'</p>
</body>
</html>
';
// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// zusätzliche Header
$header .= 'From: noreply@ist_egal.de' . "\r\n";
# Anti-header-injection
foreach($_REQUEST as $fields => $value) if(eregi("TO:", $value) || eregi("CC:", $value) || eregi("CCO:", $value) || eregi("Content-Type", $value)) exit("ERROR: Code injection attempt denied! Please don't use the following sequences in your message: 'TO:', 'CC:', 'CCO:' or 'Content-Type'.");
mail($empfaenger, $betreff, $nachricht, $header);
}
Ich weiß nicht mehr weiter. Wo und wie muss ich was ändern, damit die Daten per Email verschickt werden?
Danke schon mal für eure Hilfe