私はPHPには新しく、私は私の電子メールに送信する連絡先フォームを取得しようとしています。送信ボタンをクリックするたびに、「Can not POST /index.php」というページにリダイレクトされます。私はlocalhostから実行しようとし、それをherokuにデプロイしましたが、同じエラーが発生します。 htmlファイルとphpファイルは同じフォルダにあります。Can not POST /index.php
コンソールに次のエラーが表示されます。 'リソースの読み込みに失敗しました:サーバーは404(Not Found)のステータスで応答しました'。助けのための
<?php
if (isset($_POST["submit"])) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$telephone = $_POST['telephone'];
$from = 'Demo Contact Form';
$to = '[email protected]';
$subject = 'Message from Contact Demo ';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
// Check if name has been entered
if (!$_POST['name']) {
$errName = 'Please enter your name';
}
//Check if simple anti-bot test is correct
if (!$_POST['telephone']) {
$errName = 'Please enter your telephone number';
}
// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Please enter a valid email address';
}
//Check if message has been entered
if (!$_POST['message']) {
$errMessage = 'Please enter your message';
}
// If there are no errors, send the email
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
if (mail ($to, $subject, $body, $from)) {
$result='<div class="alert alert-success">Thank You! I will be in touch</div>';
} else {
$result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
}
}
}
?>
ありがとう:
フォームのHTMLコードは、PHPファイルがある
<form name="sentMessage" role="form" id="contactForm" novalidate name="contactform" method="post" action="index.php">
<div class="control-group form-group">
<div class="controls">
<label for="first_name">Full Name:</label>
<input type="text" class="form-control" name="name" id="name" required data-validation-required-message="Please enter your name.">
<p class="help-block"></p>
</div>
</div>
<div class="control-group form-group">
<div class="controls">
<label for="telephone">Phone Number:</label>
<input type="tel" class="form-control" id="phone" name="telephone" required data-validation-required-message="Please enter your phone number.">
</div>
</div>
<div class="control-group form-group">
<div class="controls">
<label for="email">Email Address:</label>
<input type="email" class="form-control" name="email" id="email" required data-validation-required-message="Please enter your email address.">
</div>
</div>
<div class="control-group form-group">
<div class="controls">
<label for="comments">Message:</label>
<textarea rows="10" cols="100" class="form-control" name="message" id="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea>
</div>
</div>
<div id="success"></div>
<!-- For success/fail messages -->
<button type="submit" class="btn btn-primary" id="send-email">Send Message</button>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<?php echo $result; ?>
</div>
</div>
</form>
です。
を試してみましょう。 HTMLでは 'method =" get "という形式を設定し、' index.php'の先頭に 'echo 'を置きます。これはindex.php'です。 exit; 'フォームを送信すると、あなたが印刷したメッセージが画面に表示されますか? – BeetleJuice
私はこれを行うときに私のindex.phpファイルをダウンロードします –
申し訳ありませんが、私の質問に答えなかったので、 "index.phpをダウンロードします"という意味が分かりません。私のテストに従った?つまり、HTMLに 'method =" get "'を設定してフォームを送信すると、* "this is index.php" *というメッセージが画面に表示されます。 – BeetleJuice