我有一个我正在处理的网站模板,它包含一个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>
答案 0 :(得分:0)
我们需要以下文件:
<小时/> 您只需要公开您的数据。
<强> HTML 强>
<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;
<强> 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代码,我可能会告诉您已经知道的事情。]
可以使用(通常)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协议)
您需要在表单中更改的唯一方法是如前所述的方法属性,无论方法如何,其他所有内容都会相同。 (在这种情况下,如果您提交文件或事情开始变得更复杂)
当PHP处理GET或POST请求时,数据分别放在名为$ _GET和$ _POST的保留数组中。索引是HTML代码中输入元素的名称,即&#39; name&#39;,&#39; email&#39;和&#39;消息&#39;。因此,要么$ _GET [&#39; name&#39;]或$ _POST [&#39; name&#39;]来获取用户的名字。 您应该确保提交的数据是合法的。永远不要相信用户提交的数据!
这可以是内置函数:
邮件(收件人,主题,留言)
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';
}
再次: