안녕하세요 어리석은 질문 일지 모르지만 저는 PHP의 초보자이며 유효성 검사가 포함 된 전자 메일 양식을 만들고 버튼을 클릭하면 페이지를 다시로드하여 메일을 보냅니다. 모든 입력이 완료되지 않았고 버튼을 클릭 한 후에도 양식이 완료되지 않았다고 표시됩니다. 그런 일이 일어나지 않도록 아약스가 필요한가요? PHP : :PHP 전자 메일 양식 유효성 검사, 유효성 검사 작동하지 않음
<?php
$nameErr = $emailErr = $messageErr = "";
$to = '[email protected]';
$subject = 'Email form test';
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST["name"])) {
$nameErr = "* Please enter your name";
} else {
$name = test_input($_POST["name"]);
}
if (isset($_POST["email"])) {
$emailErr = "* Please enter your email";
} else {
$email = test_input($_POST["email"]);
}
if (isset($_POST['message'])) {
$messageErr = "* Please enter a message";
} else {
$message = test_input($_POST["message"]);
}
$message = <<<EMAIL
$name
$email
$message
EMAIL;
$header = '$email';
if ($_POST['submit']){
mail($to , $subject , $message , $header);
$feedback = 'Your email has been sent.';
}
}
?>
HTML :
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<div class="name">
<input type="text" name="name" id="name" value="" placeholder="Name" size="50">
<span class="error"><?php echo $nameErr;?></span>
</div>
<br>
<div class="email">
<input type="text" name="email" id="email" value="" placeholder="E-Mail" size="50">
<span class="error"><?php echo $emailErr;?></span>
</div>
<br>
<div class="message">
<textarea name="message" id="message" placeholder="Enter your message" rows="6"></textarea>
<span class="error"><?php echo $messageErr;?></span>
</div>
<br>
<div class="submit">
<input type="submit" name="submit" class="button special">
</div>
</form>
<p id="feedback"><?php echo $feedback; ?></p>
감사합니다 다음은 더 잘 이해 수있는 코드입니다.
"양식이 어떤 상태인지에 관계없이 mail()을 부릅니다. 양식이 어떤 상태인지 * 상관없이 이메일을 보내는 이유는 무엇입니까?" 아니요, AJAX가 필요하지 않습니다. 메일을 보내지 않으려면 메일 보내기 기능을 호출하지 마십시오. – TessellatingHeckler