PHP: E-posta çalışmıyor jquery kullanarak gönderme

0 Cevap php

Bildiğim kadarıyla söyleyebilirim, bu komut Chrome ve IE iyi çalışıyor. Firefox'ta doğru çalışmıyor. (- Bazen bir e-posta yoluyla gitmiş değil, ama biz bu hatayı yeniden mümkün olmamıştır her şey mükemmel bir söz çalışıyor değil.)

EDIT: Şimdi Chrome ve Firefox, e-posta first denemek gönderilen değil gibi görünüyor, ama ben PayPal geri düğmesine basın ve tekrar gönderin, eğer gönderilir.

Ben sorun AdBlock Plus, nasılsa komut devre dışı olabileceğini düşündüm. Engelli sayfada ABP ve gönderdi ... ama sayfayı yenileyerek ve yeniden göndermek için denedikten sonra, geri değil çalışma oldu.

Bu kayıt formu ayrı ayrı ödeme işlemi için PayPal kullanıcı yönlendirme sonra, kullanıcı için kayıtlı ne PayPal sunulmak üzere hazırlamak için uygun girdileri değiştirebilir, form verilerinin bir demet içeren bir e-posta göndermek gerekiyordu. PayPal'a yönlendirme daima sepeti uygun öğeleri ile mükemmel oluyor.

Bu kod, HTML dosyasının baş bulunmaktadır. (Bu benim kendi bir minified jQuery dosyasını kullanmak için kullanılır, bu yüzden bu bir bağlantı çalıştı hataları arıyor - sorunu çözmek değil.)

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.js"></script>
<script type="text/javascript" src="[myscripts].js"></script>

Form başlar:

<form id="[myformname]" name="[myformname]" method="post" action="">

. [Myscripts] js bu içerir:

$(function() {  
  $('.error').hide();  
  $(".button").click(function() {

    // many lines pulling input from form, generally of the type:
    var firstname = $("input#firstname").val();
    // as well as 
    var subscribe = $("input#subscribe").is(':checked');

    // simple validation code for now, here is a generalized version
    if (firstname == ''){
       $('p#errors').html("Error: First name is required.");
       $("p#errors").show();
       return false;
    }
    else if (lastname == ''){
       $('p#errors').html("Error: Last name is required.");
       $("p#errors").show();
       return false;    
    }
    else {
       $("p#errors").hide();
    }


    fixFields();   // this does the adjustment for PayPal
                   // checked checkboxes -> item_name_1, amount_1, etc.

    // in the real code, submitString is very long
    var submitString = 'firstname='+firstname+'&lastname='+lastname+'&email='+email+'&subscribe='+subscribe; // etc.

    $.ajax({  
      type: "POST",  
      url: "register.php",  
      data: submitString,  
      success: function() {
        return false;
      }  
    });

    submitForm(); // resets action to PayPal link, resubmits

  });  
});  

. Alakalı olduğu durumda, daha önce burada [myscripts] içinde js tanımlanan submitform yöntemdir:

function submitForm(){
  var form_url = $("#[myformname]").attr("action"); 
  //changing the action
  $("#[myformname]").attr("action","https://www.paypal.com/cgi-bin/webscr");
  //submit the form
  $("#[myformname]").submit();
  return true;
}

İşte register.php olduğunu:

<?php
 $to = "[example1]@gmail.com,[example2]@gmail.com";
 $subject = "New Registration";
 $headers = "From: webmaster@[mysite.com]";

 // shortened for readability's sake
 $name = $_POST['firstname']." ".$_POST['lastname'];

 $body = "INFORMATION\n".$name."\n".$_POST['email'].", Subscribe: ".$_POST['subscribe'];

 $body = $body."\nSELECTIONS\n";
 if ( $_POST['option1']=="true" ) {
    $body = $body."Option 1 Name\n     Details Line 1\n     Details Line 2\n";
 }
 if ( $_POST['option2']=="true" ) {
    $body = $body."Option 2 Name\n     Details Line 1\n     Details Line 2\n";
 }

 mail($to, $subject, $body, $headers);

?>

Bu gülünç uzun sonrası ise özür dilerim. Ben bir programlama meraklısı ve ben burada kullanıyorum dillerin çoğu için çok yeni değilim, bu yüzden mümkün olduğunca açık olmak istedim. Önerileriniz için şimdiden teşekkür ederiz.

0 Cevap