jjzjj

PHP mail()发送2份

coder 2024-05-03 原文

我的联系表有这个问题。当我提交表格时,我的邮箱中收到了 2 封相同的电子邮件。

我使用 JS 检查表单是否有错误,然后使用简单的 PHP mail() 函数发送电子邮件。

这是 PHP 代码:

<?php

$from = Trim(stripslashes($_POST['email']));
$to = "myemail@gmail.com";

$subject = "Contact Form";
$name = Trim(stripslashes($_POST['name']));
$email = Trim(stripslashes($_POST['email']));
$number = Trim(stripslashes($_POST['number']));
$message = Trim(stripslashes($_POST['message']));

    $body = "";
    $body .= "Name: ";
    $body .= $name;
    $body .= "\n\n";
    $body .= "E-mail: ";
    $body .= $email;
    $body .= "\n\n";
    $body .= "Telephone Number: ";
    $body .= $number;
    $body .= "\n\n";
    $body .= "Message: ";
    $body .= $message;
    $body .= "\n\n";

    $success = mail($to, $subject, $body, "From: <$from>" . "\r\n" . "Reply-to: <$from>" . "\r\n" . "Content-type: text; charset=utf-8");

?>

这是 JS:

$(".submit").click(function() {
        var name = $("input[name=name]").val();
        var email = $("input[name=email]").val();
        var number = $("input[name=number]").val();
        var message = $("textarea[name=message]").val();

        if (defaults['name'] == name || name == "") {
            $(".error").text("Please enter your name!");
            return false;

        } else if (defaults['email'] == email || email == "") {
            $(".error").text("Please enter your email!");
            return false;

        } else if (defaults['number'] == number || number == "") {
            $(".error").text("Please enter your number!");
            return false;

        } else if (defaults['message'] == message || message == "") {
            $(".error").text("Plese enter your message!");
            return false;
        }

        var dataString = 'name=' + name + '&email=' + email + '&number=' + number + '&message=' + message;
        $(".error").text("Please wait...").hide().fadeIn("fast");

        $.ajax({
            type: "POST",
            url: "contact.php",
            data: dataString,
            success: function() {
                $('#form form').html("");
                $('#form form').append("<div id='success'>Your message has been sent! Thank you</div>");
            }
        });

        return false;
    });

这是 HTML 表单:

<form id="contact" method="post" action="#">

<label for="name">Name:</label>
<input type="text" name="name" required tabindex="1">

<label for="email">Email adress:</label>
<input type="text" name="email" required tabindex="2">

<label for="number">Tel. number:</label>
<input type="text" name="number" tabindex="3">

<label for="message">Your message:</label>
<textarea name="message" rows="10" cols="70" required tabindex="4"></textarea>

<input type="checkbox" id="terms" name="terms" value="terms">I agree to the <a href="#">terms</a>

<input type="submit" name="submit" class="submit more-info" tabindex="5" value="Send">

<span class="error"></span>

</form>

我一直在为我的所有联系表单使用相同的代码,并且一切正常。可能是托管/服务器相关问题吗?

最佳答案

替换你的点击事件

$(".submit").click(function() { 

$('.submit').unbind('click').click(function() {

代码。

我可以假设您的点击事件绑定(bind)了两次可能是由于代码中有很多困惑

同样在点击事件函数的最后使用这一行

$('.submit').unbind('click').click(function() {

    // your stuff

    event.stopImmediatePropagation(); // as long as not bubbling up the DOM is ok?
});

引用链接:https://forum.jquery.com/topic/jquery-executes-twice-after-ajax

关于PHP mail()发送2份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19253908/

有关PHP mail()发送2份的更多相关文章

  1. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  2. ruby - 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么? - 2

    我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=

  3. ruby - 是否可以在不实际发送或读取数据的情况下查明 ruby​​ 套接字是否处于 ESTABLISHED 或 CLOSE_WAIT 状态? - 2

    s=Socket.new(Socket::AF_INET,Socket::SOCK_STREAM,0)s.connect(Socket.pack_sockaddr_in('port','hostname'))ssl=OpenSSL::SSL::SSLSocket.new(s,sslcert)ssl.connect从这里开始,如果ssl连接和底层套接字仍然是ESTABLISHED,或者它是否在默认值7200之后进入CLOSE_WAIT,我想检查一个线程几秒钟甚至更糟的是在实际上不需要.write()或.read()的情况下关闭。是用select()、IO.select()还是其他方法完成

  4. ruby - 如何理解 Ruby 中的发送者和接收者? - 2

    我很难理解Ruby中sender和receiver的实际含义。它们一般是什么意思?到目前为止,我只是将它们理解为方法调用和获取其返回值的调用。但是,我知道我的理解还远远不够。谁能给我一个Ruby中发送者和接收者的具体解释? 最佳答案 面向对象中的一个核心概念是消息传递和早期概念化,这在很大程度上借鉴了计算的Actor模型。艾伦·凯(AlanKay)创造了面向对象一词并发明了最早的OO语言之一SmallTalk,他拥有voicedregretatusingatermwhichputthefocusonobjectsinsteadofo

  5. ruby - 动态扩展现有方法或覆盖 ruby​​ 中的发送方法 - 2

    假设我们有A、B、C类。Adefself.inherited(sub)#metaprogramminggoeshere#takeclassthathasjustinheritedclassA#andforfooclassesinjectprepare_foo()as#firstlineofmethodthenrunrestofthecodeenddefprepare_foo#=>prepare_foo()neededhere#somecodeendendBprepare_foo()neededhere#somecodeendend如您所见,我正在尝试将foo_prepare()调用注入

  6. ruby-on-rails - 如何通过 POST 发送多个相同的键/参数? - 2

    如果我必须在一个HTTP请求中发送一堆post参数,所有这些参数都具有相同的名称,我该如何构建要发布的data对象?想象一个带有一些复选框的表单,它们都具有相同的name属性但具有不同的值(如果它们被选中):我想用ruby​​构建它(但它需要根据在表单上选择的内容动态创建):data={"color"=>"red","color"=>"green","color"=>"blue"}然后将数据发送到某个URL:Net::HTTP.post_form(url,data)我无法控制接收端,所以我必须发送它期望接收的参数。怎么办? 最佳答案

  7. 常见网络安全产品汇总(私信发送思维导图) - 2

    安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un

  8. ruby-on-rails - 如何通过 HTTParty 通过 PUT 请求发送空数组? - 2

    我有一个具有“名称”属性和“标签”属性的照片类。我的目标是在Rails中实现一个更新功能,用输入的内容替换照片的标签。例如,如果我尝试PUT一个将“标签”设置为[]的JSON对象,我希望从照片中清除任何标签。但是,当我通过HTTParty提交一个空数组作为主体参数之一时,我相信HTTParty正在将[]翻译成nil。因此,我的Rails后端的photos#update端点没有接收到任何参数“tags”。我正在寻找一种方法让HTTParty不将[]转换为nil,因为我失去了从照片中删除标签的能力。 最佳答案 这是Rails4中的一个错

  9. ruby-on-rails - 使用 HTTParty 发送多个文件 - 2

    这是使用Net::HTTP::Post工作的代码request=Net::HTTP::Post.new(url)...form_data=[['attachments[]',File.open('file1.txt')],['attachments[]',File.open('file2.txt')]]request.set_formform_data,'multipart/form-data'http.request(request)现在,我正尝试像下面那样使用httpparty,但它不起作用。body={attachments:[File.open('file1.txt'),Fil

  10. ruby - 是否可以在 Unicorn master 完成重启时发送通知? - 2

    我在nginx+unicorn后面运行一系列Rails/Sinatra应用程序,零停机部署。我喜欢这个设置,但Unicorn需要一段时间才能完成重新启动,所以我想在完成时发送某种通知。我能在Unicorn文档中找到的唯一回调与workerfork相关,但我认为这些回调对此不起作用。这是我从赏金中寻找的东西:老unicorn主人启动新主人,然后新主人开始它的worker,然后旧主人停止它的worker并让新主人接管。我想在交接完成后执行一些ruby​​代码。理想情况下,我不想为此实现任何复杂的流程监控。如果这是唯一的方法,那就这样吧。但在走那条路之前,我正在寻找更简单的选择。

随机推荐