サイトからメールを送信するためのコードを書いています。基本コードは完全に機能し、入力されたデータをチェックするための小さなビットを追加して、ページが機能していないことを表示しています。 PHPを初めて使用したので、このコードでエラーは見られませんが、全く新しいものです。完全デバッグ:PHPでメールを送信
<?php
if(isset($_POST['submitButton'])){
function errorMessage($error) {
echo 'Apologies but the request has not been successful<br/>';
echo 'Please see below, amend and then resubmit<br/><ul>';
echo $error . '</ul>';
die();
}
$error_message = ""; // set the error message as empty
$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; // string to look for
$string_exp = "/^[A-Za-z .'-]+$/"; // string to look for
$contact_exp = '/^[0-9]/';
$subject = " Request"; // subject of their email to me
$subject2 = "Copy of your Request"; // subject of the email back to them
$to = "myemail"; // this is my Email address
$from = $_POST['emailAddressField']; // this is the requesters Email address
if (!preg_match($email_exp,$from)) {
$error_message . = '<li>The Email Address you entered does not appear to be valid.</li>';
}
$first_name = $_POST['firstNameField']; // this is their first name
if (!preg_match($string_exp,$first_name)) {
$error_message . = '<li>The first name you entered does not appear to be valid.</li>';
}
$last_name = $_POST['surnameField']; // this is their surname
if (!preg_match($string_exp,$last_name)) {
$error_message . = '<li>The surname you entered does not appear to be valid.</li>';
}
$contact_number = $_POST['contactNumberField']; // this is their contact number
if (!preg_match($contact_exp,$contact_number)){
$error_message . = '<li>The contact number you entered does not appear to be valid.</li>';
}
$details_field = $_POST['detailsField']; // this is the details
if (strlen($details_field) < 10) {
$error_message . = '<li>Please give more details, at least 10 characters.</li>';
}
$message = $first_name . " " . $last_name . " (" . $contact_number . ") wrote the following:" . "\n\n" . $details_field; // message of email to me
$message2 = "Here is a copy of your request " . $first_name . " (" . $contact_number . ").\n\n" . $details_field . "\n\nMany thanks"; // message of email to requester
$headers = "From:" . $from; // message of email header to me
$headers2 = "From:" . $to; // message of email header to requester
// if there have been errors, then display error message and end
if(strlen($error_message) > 0) {
errorMessage($error_message);
}
// send the emails
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Request sent. Thank you " . $first_name . ", I will contact you shortly.";
}
?>
作品:
<?php
if(isset($_POST['submitButton'])){
$subject = "Request"; // subject of their email to me
$subject2 = "Copy of your Request"; // subject of the email back to them
$to = "myemail"; // this is my Email address
$from = $_POST['emailAddressField']; // this is the requesters Email address
$first_name = $_POST['firstNameField']; // this is their first name
$last_name = $_POST['surnameField']; // this is their surname
$contact_number = $_POST['contactNumberField']; // this is their contact number
$details_field = $_POST['detailsField']; // this is the details
$message = $first_name . " " . $last_name . " (" . $contact_number . ") wrote the following:" . "\n\n" . $details_field; // message of email to me
$message2 = "Here is a copy of your request " . $first_name . " (" . $contact_number . ").\n\n" . $details_field . "\n\nMany thanks"; // message of email to requester
$headers = "From:" . $from; // message of email header to me
$headers2 = "From:" . $to; // message of email header to requester
// send the emails
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Request sent. Thank you " . $first_name . ", I will contact you shortly.";
}
?>
誰もが、この迷惑なエラーを見つけることで私を助けることができますか?
動作していない**どれほど**? –
@MarcBは私が得るエラーで更新されました。私はこれを正しくデバッグするためにPHPに経験があります! – Geoff
@ Fred-ii-質問の一番下の例が完全に動作し、期待通りにメールを送信します。そのため、フォームは何が間違っているのではないのですか? – Geoff