इसलिए मेरे पास मेरी वेबसाइट पर एक संपर्क फ़ॉर्म है, जो आंशिक रूप से काम कर रहा है - ईमेल इच्छित ईमेल पते पर भेजा जा रहा है, लेकिन फ़ॉर्म की सामग्री ईमेल में शामिल नहीं है। मुझे ईमेल के भीतर फॉर्म इनपुट के लिए लेबल मिलते हैं, न कि उपयोगकर्ता जो उनके विवरण के रूप में इनपुट करते हैं।

मैंने वेरिएबल्स की जांच की और फिर से जांच की और कोड में टाइपो और सिंटैक्स त्रुटियों की जांच की लेकिन कोई भी नहीं मिला। PHP और 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>

PHP कोड:

<?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 = 'jonnylovesspam@gmail.com';

   /* 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";

   ?>

आप फ़ॉर्म को यहां क्रिया में देख सकते हैं: http://www.clearpandb.co .uk/संपर्क

किसी भी संकेत या सहायता के लिए अग्रिम धन्यवाद जो आप दे सकते हैं।

0
JonnYnnoJ 25 अक्टूबर 2016, 16:43
क्या आप ईमेल भेजने से पहले कोई आउटपुट (var_dump()) उदाहरण के लिए $nameField पर प्राप्त कर सकते हैं?
 – 
Johncze
25 अक्टूबर 2016, 17:02
नहीं, कोई आउटपुट नहीं। बस "नल" प्राप्त करें। मैंने पेज रीडायरेक्ट को हटा दिया है ताकि यह फॉर्म जमा करने के बाद मानों को वर्डंप कर सके।
 – 
JonnYnnoJ
25 अक्टूबर 2016, 17:18

1 उत्तर

सबसे बढ़िया उत्तर

आपके जावास्क्रिप्ट के बिना यह काम कर रहा है?

मेरे फॉर्म के लिए मैं HTML5 इनपुट प्रकार का उपयोग करता हूं:

HTML5 added several new input types:

color
date
datetime
datetime-local
email
month
number
range
search
tel
time
url

सादर,

फ्लोरेंट।

1
Florent Gestin 25 अक्टूबर 2016, 16:52