弹出窗体不发送电子邮件

时间:2014-07-31 16:54:49

标签: javascript php html forms email

我有弹出窗体的问题。它不发送电子邮件。这是html表单:

<form action="#" method="post" id="form" >
  <img src="images/3.png" id="close"/>
  <h2>Contact Us</h2><hr/>
  <input type="text" name="name" id="name" placeholder="Name"/>
  <input type="text" name="email" id="email" placeholder="Email"/>
  <textarea name="message" placeholder="Message" id="msg"></textarea>
  <a id="submit" href="javascript: check_empty()">Send</a>
</form>

JS弹出html表单:

function check_empty(){
if(document.getElementById('name').value == "" 
|| document.getElementById('email').value == "" 
||document.getElementById('msg').value == "" ){
alert ("Fill All Fields !");
}
    else {  
    document.getElementById('form').submit();  
    alert ("Form submitted successfully...");
    }
}

//function to display Popup
function div_show(){ 
document.getElementById('abc').style.display = "block";
}

//function to check target element
function check(e){ 
var target = (e && e.target) || (event && event.srcElement); 

var obj = document.getElementById('abc'); 
var obj2 = document.getElementById('popup'); 

checkParent(target)?obj.style.display='none':null; 
target==obj2?obj.style.display='block':null; 

} 

//function to check parent node and return result accordingly
function checkParent(t){ 
    while(t.parentNode){ 
        if(t==document.getElementById('abc'))
            { 
                return false 
            }
        else if(t==document.getElementById('close'))
            {
                return true
            } 
        t=t.parentNode 
    } 
    return true 
} 

并且php函数将表单数据发送到电子邮件。一切正常但我没有收到gmail上的电子邮件。类似的PHP脚本我以前发布电子邮件没有弹出,它工作。

       <?php 
if(isset($_POST['submit'])){
    $to = "myemail@gmail.com"; 
    $from = $_POST['email']; 
    $first_name = $_POST['name'];
    $message = $first_name  . " wrote following:" . "\n\n" . $_POST['message'];   
    mail($to,$from,$message); 
    }
?>

2 个答案:

答案 0 :(得分:1)

简单:您没有名为&#34的元素;提交&#34;在您的表单中,因此您的if()测试始终失败 HTML表单中的id!= name; 含义id不等于name

一个简单的解决方法:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   ... form was submitted ...
}

但是这个代码在任何情况下都很糟糕。您永远不应该只使用客户端验证。它太容易绕过了。 始终在服务器上验证/验证。

答案 1 :(得分:0)

您应该将表单中的操作设置为服务器中操作的URL。