Я использую контактную форму PHP для сайта, размещенного на Nginx с Digital Ocean. Я совершенно новичок в PHP. Я установил sendmail, используя эту статью —https://www.digitalocean.com/community/questions/php-mail-function-enable.
При отправке формы ошибки 405 Способ не допускается. Файлы .js и .php находятся в корневом каталоге, поэтому я не думаю, что это проблема CORS.
contact_me.php
<?php
echo $_POST;
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];
$to = '[email protected]';
$email_subject = "Portfolio Contact: $name";
$email_body = "Name: $name\n\nEmail: $email_address\n\nMessage:\n$message";
$headers = "From: [email protected]" . "\r\n";
$headers .= "Reply-To: $email_address" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
contact_me.js
$(function() {
$("input,textarea").jqBootstrapValidation({
preventSubmit: true,
submitError: function($form, event, errors) {
// additional error messages or events
},
submitSuccess: function($form, event) {
console.log('contact_me.js submitSuccess running'); // this prints
event.preventDefault();
var name = $("input#name").val();
var email = $("input#email").val();
var message = $("textarea#message").val();
var firstName = name;
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
$.ajax({
url: "http://www.example.com/contact_me.php",
type: "POST",
data: {
name: name,
email: email,
message: message
},
cache: false,
success: function() {
console.log('ajax success function'); // doesn't print
},
error: function() {
console.log('ajax error function'); // this prints
}
})
},
filter: function() {
return $(this).is(":visible");
}
});
$("a[data-toggle=\"tab\"]").click(function(e) {
e.preventDefault();
$(this).tab("show");
});
});
Я писал в бэкэнд Firebase, прежде чем пытался использовать PHP, и там работает ajax. Любые советы будут полезны. Благодарю.
Задача ещё не решена.
Других решений пока нет …