如何使这个HTML表单工作?

时间:2016-06-01 06:36:34

标签: php html forms contact

我有一个我正在处理的网站模板,它包含一个HTML格式的联系表单。我很难通过电子邮件发送表单内容。我尝试创建PHP脚本,但我没有运气。真的很感激任何帮助!

以下是表单HTML代码:

<form action="" class="main_form error" novalidate target="_blank">
  <label class="form-group">
    <span class="fa fa-asterisk"></span>
    <input type="text" name="name" placeholder="Your name here" data-validation-required-message="Please, enter Your name" required />
    <span class="help-block text-danger"></span>
  </label>
  <label class="form-group">
    <span class="fa fa-asterisk"></span>
    <input type="email" name="email" placeholder="Your E-mail here" data-validation-required-message="Your E-mail isn't correct" required />
    <span class="help-block text-danger"></span>
  </label>
  <label class="form-group">
    <span class="fa fa-asterisk"></span>
    <textarea name="message" placeholder="Your message here" data-validation-required-message="Please, type Your message" required></textarea>
    <span class="help-block text-danger"></span>
  </label>
  <button>Send it to me</button>
</form>

3 个答案:

答案 0 :(得分:0)

我们需要以下文件:

  1. form.html(带表单的页面)
  2. form_processing.php(包含处理HTML表单的脚本的文件。)
  3. <小时/> 您只需要公开您的数据。

    <强> HTML

    &#13;
    &#13;
    <title>Some form</title>
    </head>
    <body>
    <form action="form_processing.php" method="post">
    <p>Your name:<br /><input type="text" name="your_name" /></p>
    <p>E-mail:<br /><input type="text" name="email" /></p>
    <p>Title:<br /><input type="text" name="title" /></p>
    <p>Message: <br />
    <textarea name="message" rows="5" cols="45"> </textarea></p>
    <p><input type="submit" value="Submit"></p>
    </form>
    </body>
    </html>
    &#13;
    &#13;
    &#13;

    <强> PHP

    <?php
    /* Carry out the checking of the input data and their protection from hostile scripts. */
    $your_name = htmlspecialchars($_POST["your_name"]);
    $email = htmlspecialchars($_POST["email"]);
    $title = htmlspecialchars($_POST["title"]);
    $message = htmlspecialchars($_POST["messages"]);
    
    /* Set e-mail recipient */
    $myemail = "my_email@mail.ru";
    
    /* Check the full mandatory input fields */
    $your_name = check_input($_POST["your_name"], "Enter your name!");
    $title = check_input($_POST["title"], "Specify the subject");
    $email = check_input($_POST["email"], "Enter your e-mail!");
    $message = check_input($_POST["message"], "You forgot to write the message!");
    
    /* Create a new variable by assigning a value to */
    $message_to_myemail = "Hello! 
    Your contact form sent message! 
    Sender name: $your_name 
    E-mail: $email 
    Text: $message 
    End";
    
    /* Send the message using mail() function */
    $from  = "From: $yourname <$email> \r\n Reply-To: $email \r\n"; 
    mail($myemail, $title, $message_to_myemail, $from);
    ?>
    <p>Your message has been successfully sent!</p>
    <p>Go <a href="index.php">Home >>></a></p>
    <?php
    
    /* If when filling out the form mistakes were made the following code will work: */
    function check_input($data, $problem = "") {
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
    
        if ($problem && strlen($data) == 0) {
        show_error($problem);
        }
        return $data;
        }
    }
    
    function show_error($myError) {
        // Some code
    }
    
    ?>
    <html>
        <body>
            <p>Please correct the following error:</p>
            <?php echo $myError; ?>
        </body>
    </html>
    

答案 1 :(得分:0)

我第一次尝试提供帮助,希望这会有所帮助。

<!DOCTYPE HTML>
<HEAD>
<meta charset="utf-8">
<TITLE>Contact</TITLE>
<style>
#form  {width : 500px;
        border-style : solid;
        border-width : 3px;
        border-color : blue;  }

</style>
<script type="text/javascript"> 

function send_message (){  

   var onoma = document.getElementById("Name").value;
   var mail = document.getElementById("email").value;
   var Theme = document.getElementById("subject").value;
   var keim = document.getElementById("Texts").value;

   var mail_link = "mailto:your_email?subject=From Site         :"+Theme+"&body="+keim; 
   var win = window.open(mail_link, 'emailWindow');  
}
</script>

</HEAD>
<BODY>
<center>
<div id="form">
<pre>
  Name : <input type="text" id="Name"><br>
E-mail : <input type="email" id="email"><br>
Subject: <input type="text" id="subject"><br>
         <textarea height="80" width="200" id="keimeno"></textarea>
</pre>
<button onclick="send_message()">Send it</button>
</div>
</pre>
</FORM>
</center>
</BODY>
</HTML>

答案 2 :(得分:0)

[由于您没有显示任何PHP代码,我可能会告诉您已经知道的事情。]

1。获取表单内容到服务器

可以使用(通常)GET或POST请求提交表单。使用哪种方法由&lt; form&gt;中的method属性确定。元件。 E.g &lt; form method =&#34; get&#34;&gt; 。默认为GET,因为您尚未在表单代码中指定了您将要使用的方法。 GET请求在问号后将数据附加到URL,例如 mysite.com/form.php?var1=val1&var2=val2& ... 您可能认为这可能会变得非常笨拙如果数据不是很小的话。而且,还有一个长度限制。虽然还有其他事情需要考虑,但GET请求并不适合&#34;大&#34;要求。

输入POST:这样,URL就会保持不变,数据将被发送到&#34;场景&#34;后面。 (有关详细信息,请阅读HTTP协议)

您需要在表单中更改的唯一方法是如前所述的方法属性,无论方法如何,其他所有内容都会相同。 (在这种情况下,如果您提交文件或事情开始变得更复杂)

2。使用PHP

处理已到达服务器的请求

当PHP处理GET或POST请求时,数据分别放在名为$ _GET和$ _POST的保留数组中。索引是HTML代码中输入元素的名称,即&#39; name&#39;,&#39; email&#39;和&#39;消息&#39;。因此,要么$ _GET [&#39; name&#39;]或$ _POST [&#39; name&#39;]来获取用户的名字。 您应该确保提交的数据是合法的。永远不要相信用户提交的数据!

3。在PHP中使用某种方式发送邮件。

这可以是内置函数:

邮件(收件人,主题,留言)

mail($recipient_email, 'my subject', $_GET['message']);

..在这种情况下。请注意,它需要进行一些配置工作才能让PHP知道发送邮件的位置:)。

..或像PHPMailer这样的软件包。

$mail = new PHPMailer;

$mail->setFrom($_GET['email'], $_GET['name']);
$mail->addAddress('your email', 'Your name'); // Add a recipient

$mail->isHTML(true); // Set email format to HTML

$mail->Subject = 'Contact form subject';
$mail->Body    = $_GET['message'];

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

再次:

  • 您最有可能使用联系表单的POST请求。
  • NOT 信任用户数据。
祝你好运:)。