So habe ich ein Kontaktformular auf meiner Website, die teilweise funktioniert - Die E-Mail wird an die vorgesehene E-Mail-Adresse gesendet, aber der Inhalt des Formulars sind nicht in der Email. Ich bekomme die Etiketten für die Formulareingaben in der E-Mail, nur nicht, was der Benutzer als ihre Details eingibt.PHP/js Kontaktformular keine Buchungsform Daten über
Ich habe die Variablen untersucht und erneut überprüft und auf Syntaxfehler & im Code überprüft, kann aber keine finden. PHP & js ist nicht meine Stärke, so hoffe ich, dass die Art & clevere Menschen hier mir in die richtige Richtung zeigen kann.
Die HTML und js:
<form id="contact-form" name="contact-form" method="post" action="form-processing.php" style="float: right;">
<span id="sprytextfield1">
<label for="Name:">Name:</label>
<br />
<input name="Name" type="text" id="Name" tabindex="10" />
<span class="textfieldRequiredMsg">*</span></span>
<p><span id="sprytextfield2">
<label for="Email:">Email:</label>
<br />
<input type="text" name="Email" id="Email" tabindex="20"/>
<span class="textfieldInvalidFormatMsg">*</span></span>
</p>
<p><span id="sprytextfield3">
<label for="PhoneNumber">Phone Number:</label>
<br />
<input type="text" name="PhoneNumber" id="PhoneNumber" tabindex="30"/>
<span class="textfieldRequiredMsg">*</span></span>
<p><span id="sprytextfield4">
<label for="Message">Message:</label>
<br />
<textarea name="Message" cols="20" rows="10" id="Message" tabindex="40"></textarea>
<span class="textfieldRequiredMsg">*</span></span>
</p>
<p>
<input type="submit" name="Send" id="Send" value="Send" tabindex="50" />
</p>
</form>
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "Name");
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "Email", {
isRequired: false
});
var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "PhoneNumber", {
format: "phone_custom",
pattern: "07234567890",
validateOn: ["blur"]
});
var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4", "Message");
</script>
Der PHP-Code:
<?php
while (list($key, $val) = @each($_GET)) $GLOBALS[$key] = $val;
while (list($key, $val) = @each($_POST)) $GLOBALS[$key] = $val;
while (list($key, $val) = @each($_COOKIE)) $GLOBALS[$key] = $val;
while (list($key, $val) = @each($_FILES)) $GLOBALS[$key] = $val;
while (list($key, $val) = @each($_SESSION)) $GLOBALS[$key] = $val;
/* Subject and Email Variables */
$emailSubject = 'Website Contact Form';
$webMaster = '[email protected]';
/* Gathering Data Variables */
$nameField = $_POST['Name'];
$emailField = $_POST['Email'];
$PhoneNumberField = $_POST['PhoneNumber'];
$messageField = $_POST['Message'];
$body = <<<EOD
<br><hr><br>
Name: $nameField <br>
Email: $emailField <br>
Phone Numbers: $PhoneNumberField <br>
Message: $messageField <br>
EOD;
$headers = "From: $email\r\n";
$headers = "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);
/* Results Rendered as HTML */
$theResults = <<<EOD
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><br />
<meta HTTP-EQUIV="REFRESH" content="0; url=contact-message-sent">
<style type="text/css">
<!--
body {
background-color: #fffff;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #000000;
text-decoration: none;
}
-->
</style>
</head>
<div align="left">
Redirecting you...</div>
</body>
</html>
EOD;
echo "$theResults";
?>
Sie das Formular hier in Aktion sehen können:http://www.clearpandb.co.uk/contact
Danke in Fortschritt für irgendwelche Zeiger oder helfen Sie können Angebot.
könnten Sie irgendeine Ausgabe ('var_dump()') zum Beispiel auf '$ nameField' erhalten, bevor Sie die E-Mail senden? – Johncze
@ Johncze Nein, keine Ausgabe. Nimm einfach "NULL". Ich habe die Umleitung der Seite entfernt, so dass es nur die Werte nach dem Absenden des Formulars vardumps. – JonnYnnoJ