如何仅在有人成功提交表单时运行 PHP 邮件表单脚本
How to run PHP Mail Form Script only when someone Successfully Submit the Form?
我在同一页面上有以下带有PHP的HTML表单代码。实际上,问题是当任何人打开网站时,它会自动运行PHP Mail()
脚本并向我发送一封空邮件。
我希望它只有在有人成功提交表单时才有效。请帮忙。
<!--HTML FORM--><form method="post" name="contactform" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" onsubmit="return validateform()">
<input type="text" name="fullname" class="fullname" placeholder="Full Name*"
onfocus="this.placeholder = '';" onblur="if (this.placeholder == '') {this.placeholder = 'Full Name*';}">
<input type="text" name="email" class="email" placeholder="Email Address*"
onfocus="this.placeholder = '';" onblur="if (this.placeholder == '') {this.placeholder = 'Email Address*';}">
<textarea placeholder="Your Message*:" name="message" class="message"
onfocus="this.placeholder = '';" onblur="if (this.placeholder == '') {this.placeholder = 'Your Message*';}"></textarea>
<input type="submit" name="submit" value="Submit" />
</form><!--/HTML FORM> <!--Contact Form PHP-->
<?php
// define variables and set to empty values
$fullname = $email = $message = "";
$subject="Message from Website Visitor:".test_input($_POST["fullname"]);
$to="camadhusudanmishra@gmail.com";
$headers = "From:".test_input($_POST["email"]);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$fullname = test_input($_POST["fullname"]);
$email = test_input($_POST["email"]);
$message = test_input($_POST["message"]);}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;}
$message = str_replace("'n.", "'n..", $message);
mail($to,$subject,$message,$headers);
?>
<!--/Contact Form PHP-->
用于验证的 JS 代码:
function formValidation() {
var fullname = document.contactform.fullname;
var email = document.contactform.email;
var message = document.contactform.message;
if(validateName(fullname))
{
if(validateEmail(email))
{
if(validateMessage(message))
{
}
}
}
return false;
}
function validateName(fullname)
{
var letters = /^[A-Za-z]+$/;
if(fullname.value.match(letters) && fullname.value.length >= 3 && fullname.value.length <= 30)
{
return true;
}
else {
alert('Please enter a valid name');
return false;
}
}
function validateEmail(email)
{
var mailformat = /^'w+(['.-]?'w+)*@'w+(['.-]?'w+)*('.'w{2,3})+$/;
if(email.value.match(mailformat))
{
return true;
}
else
{
alert("You have entered an invalid email address!");
return false;
}
}
function validateMessage(message)
{
if(message.value.length >=5 && message.value.length <=300)
{
alert('Form Succesfully Submitted');
window.location.reload();
return true;
}
else
{
alert("Please type a valid message.");
return false;
}
}
您可以使用以下代码。
<?php
if(isset($_POST['submit']))
{
// Add here function
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;}
// define variables and set to empty values
$fullname = $email = $message = "";
$subject="Message from Website Visitor:".test_input($_POST["fullname"]);
$to="camadhusudanmishra@gmail.com";
$headers = "From:".test_input($_POST["email"]);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$fullname = test_input($_POST["fullname"]);
$email = test_input($_POST["email"]);
$message = test_input($_POST["message"]);}
$message = str_replace("'n.", "'n..", $message);
mail($to,$subject,$message,$headers);
}
?>
<!--/Contact Form PHP-->
<!--HTML FORM-->
<form method="post" name="contactform" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" onsubmit="return validateform()">
<input type="text" name="fullname" class="fullname" placeholder="Full Name*"
onfocus="this.placeholder = '';" onblur="if (this.placeholder == '') {this.placeholder = 'Full Name*';}">
<input type="text" name="email" class="email" placeholder="Email Address*"
onfocus="this.placeholder = '';" onblur="if (this.placeholder == '') {this.placeholder = 'Email Address*';}">
<textarea placeholder="Your Message*:" name="message" class="message"
onfocus="this.placeholder = '';" onblur="if (this.placeholder == '') {this.placeholder = 'Your Message*';}"></textarea>
<input type="submit" name="submit" value="Submit" />
</form><!--/HTML FORM> <!--Contact Form PHP-->
相关文章:
- 运行时表单发布;t work-jQuery/AAJX/Post
- 在浏览器检查表单之前运行javascript onsubmit
- 如何在表单提交事件后运行JavaScript*
- 在从HTML表单提交时从javascript运行php
- 单击1个表单中的2个提交按钮中的1个时,如何运行脚本
- 在Fancybox中提交表单时运行函数
- 如何在运行总计计算器时返回表单输入并更新 JavaScript 变量
- 在运行时更改表单标签文本
- 在不重新运行jquery验证的情况下检查表单是否有效
- JavaScript/JQuery表单验证运行两次
- 如何在使用JavaScript submit()函数时运行HTML5表单验证
- JQuery val()在设置表单值时引发运行时错误
- 表单提交仅运行Javascript函数一秒钟
- ASP表单在服务器上运行,不允许内部HTML按钮onlick setInterval工作
- 如果未提交表单,则在卸载之前运行窗口功能
- JavaScript 函数未为表单运行
- 带有jQuery提交运行的Javascript表单运行提交两次
- 用于从表单运行PHP脚本的进度条
- HTML/Js表单运行脚本正常
- 在本地测试HTML5登录表单运行良好,但在Phonegap中构建后什么都没有发生