PHP betiğini kullanarak php
numaralı telefondan basit bir iletişim formu oluşturdum. E-posta göndermeye yönelik başarısız bir girişimde hata iletimin görüntülenip görüntülenmeyeceğini test ediyordum. Hata mesajını zorlamak için mail()
'a iletilen $emailTo
değişkenimi boş bıraktım, ancak ne yazık ki görüntülenmiyor. $emailTo
'un geçerli bir e-posta içerip içermediğine bakılmaksızın $successMessage
görüntüler.E-posta gönderilmediyse kullanıcıya bir hata mesajı gösterebilir -
Başarılı bir şekilde gönderilen bir e-postayı test etmek ve $error
mesajını görüntülemek için daha iyi bir yol var mı? aşağıdaki gibi
Kod
<?php
$error = '';
if ($_POST) {
if(!$_POST['email']) {
$error.= 'The email address field is required.<br>';
}
if(!$_POST['subject']) {
$error.= 'The subject field is required.<br>';
}
if(!$_POST['content']) {
$error.= 'The message field is required.<br>';
}
//Validation for email (Check if it exsists and if its valid)
if (($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
$error .= '<p>The email address entered is invalid</p><br>';
}
//If there are errors...
if($error != '') {
$error = '<div class="alert alert-danger" role="alert"><p><strong>Oh snap! There were error(s) in your form:</strong></p>'.$error. '</div>';
//If there are no errors...`
} else {
$emailTo = ''; //!!!!!Left blank on purpose to test error message!!!!!
$subject = $_POST['subject'];
$content = $_POST['content'];
$headers = "From: ".$_POST['email'];
//If all fields are filled in, post successMessage to html
if(mail($emailTo, $subject, $content, $headers)) {
$successMessage = '<div class="alert alert-success" role="alert"><strong>Your message was sent, I\'ll get back to you soon!</strong></div>';
//If email couldn't get through
//!!!!!This is the message I cannot get to display!!!!
} else {
$error = '<div class="alert alert-danger" role="alert"><strong><p>Oh dang! Your message couldn\'t be sent - please try again later.</strong><div>';
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags always come first -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" integrity="sha384-y3tfxAZXuh4HwSYylfB+J125MxIs6mR5FOHamPBG064zB+AFeWH94NdvaCBm8qnd" crossorigin="anonymous">
</head>
<body>
<div class="container">
<h1>Contact me!</h1>
<div id="error"><?php echo $error.$successMessage; ?></div>
<form method="post">
<!--EMAIL ADDRESS-->
<fieldset class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter your email address">
<small class="text-muted">We'll never share your email with anyone else.</small>
</fieldset>
<!--SUBJECT-->
<fieldset class="form-group">
<label for="subject">Subject:</label>
<input type="text" class="form-control" id="subject" name="subject" placeholder="">
</fieldset>
<!--MESSAGE-->
<fieldset class="form-group">
<label for="content">Your message:</label>
<textarea class="form-control" id="content" name="content" rows="3"></textarea>
</fieldset>
<button type="submit" id="submit" class="btn btn-primary">Submit</button>
</form>
</div>
<!-- jQuery first, then Bootstrap JS. -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/js/bootstrap.min.js" integrity="sha384-vZ2WRJMwsjRMW/8U7i6PWi6AlO1L79snBrmgiDpgIWJ82z8eA5lenwvxbMV1PAh7" crossorigin="anonymous"></script>
</body>
</html>
herhangi bir yardım için şimdiden teşekkürler ... olduğunu! daha kullanışlı olduğu için yerine bitiştirme