この質問のタイトルはかなり使い古されていることに気づきましたが、私の問題に対する答えを見つけることができませんでした。これは、PHPが苦手で問題がわからないか、別の問題があるためか、投稿して誰かが助けてくれるかどうかを確認したいと思いました。
私は自分の街の地元の教会のウェブサイトを開発し、自分のコンピューターでそのサイトを作成し、それをサブディレクトリとして自分のウェブサイトに配置し、すべてをテストしました。それはうまくいきました。クライアントが望んでいたことの1つは、電子メールを送信できる電子メールフォームがあることでした。私はそれを作りました、そしてすべては良かったです。
それから私はそれを教会のサーバーにアップロードし、それもうまくいったと思いました。しかし、その後、メールフォームを試してみることにしました。何らかの理由で機能しませんでした。
ユーザーにラジオボタンで受信者(牧師、オフィスマネージャーなど)を選択してもらうことでメールフォームを作成しました。これにより、メールフォームの動作が変わります。私はちょうどこのようなことをしました:
if (recipent == "pastor") {
document.forms[0].action = "../scripts/php/pastor_contact.php";
} else if (recipent == "pastoralAssist") {
document.forms[0].action = "../scripts/php/pastoral_assist_contact.php";
} else if (recipent == "famMinistry") {
document.forms[0].action = "../scripts/php/sacra_assist_contact.php";
} else if (recipent == "sacraAssist") {
document.forms[0].action = "../scripts/php/fam_ministry_contact.php";
}
これが最もクリーンではないことはわかっていますが、うまく機能します。その場合、phpファイルはすべてこれと非常によく似ています(異なる電子メールのみ)」
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent="From: $name \n Email: $email \n Phone Number: $phone \n Message: $message";
$recipient = "email@example.com";
$subject = $_POST['subject'];
$mailheader = "$subject \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("There seems to be an error with this form. Sorry about the inconveince. We are working to get this fixed.");
header('Location: ../../quickylinks/message_sent.html') ;
?>
これは簡単に言うと、電子メールフォームから情報を収集し、それを電子メールとして送信してから、ユーザーを「送信済みメッセージ」ページにリダイレクトします。これは私のサーバーでは機能しますが、彼らのサーバーでは機能しないので、彼らのサーバーと関係があると思います。
あなたはここで彼らのサーバー情報を見ることができ、ここで私のものを見ることができます。
ユーザーがメッセージを送信すると、「このフォームにエラーがあるようです。ご不便をおかけして申し訳ありません。これを修正するために取り組んでいます。」と表示され、コードは同じですがメールは送信されません。私のサーバーとそれはそこで正常に動作します。
私の最初の考えは、PHPがサーバーにインストールされていなかったということでした(まれですが、実際に発生します)。しかし、そうでした。それで、インストールされているのではないかと思いましたが、「メール」機能が無効になりました。だから私は次のphpコードを試しました:
<?php
if (function_exists('mail')) {
echo 'mail() is available';
} else {
echo 'mail() has been disabled'; }
?>
そして「mail()が利用可能」で戻ってきました。
だから今私は立ち往生していて、問題があり得るかどうかわかりません。私が言ったように、私はまだPHPがあまり得意ではないので、誰かが詳細な答えを与えることができれば、私は本当に本当に感謝しています!
どうもありがとう!