나는 PHP에 익숙하지 않으며 이메일을 보내기위한 연락 양식을 얻으려고합니다. 제출 버튼을 클릭 할 때마다 'Can not POST /index.php'페이지로 리디렉션됩니다. localhost에서 실행 해 보았고 heroku에 배포했지만 여전히 같은 오류가 발생합니다. html과 php 파일은 같은 폴더에 있습니다.Can not POST /index.php
콘솔에 '자원로드 실패 : 서버가 404 (찾을 수 없음) 상태로 응답했습니다.'라는 오류가 표시됩니다. 도움을
<?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