Я создаю веб-сайт, и моя единственная функциональность, контактная форма, нуждается в том, чтобы изменить последний бит, чтобы быть действительно успешным. Я могу отправить электронную почту через SMTP благодаря потрясающему видео на YouTube. Но другой учебник (тем же загрузчиком) показал, как проверять адреса электронной почты, и у меня есть код, но когда у меня есть его вместе с моим файлом index.php, он, похоже, не работает.Форма контакта проверка электронной почты
Похоже, что это не работает, я имею в виду, что проверки не отображаются после нажатия кнопки «Отправить» (это то, что должно произойти в соответствии с видео.) Мне нужна помощь в том, чтобы узнать, где поместить бит FILTER_VALIDATE php в этот код, в моем index.php.
Я не уверен, если GitHub ссылки здесь популярны, но вот мой GitHub,
https://github.com/orangelimester/Project3.git
и те файлы для контактной формы, о которой я говорю. Он посылает по электронной почте не проблема
Ниже HTML контактной формы (как видно с экрана спасибо следующий за ним.): Index.php
<?php
session_start();
require_once 'security.php';
$errors = isset($_SESSION['errors']) ? $_SESSION['errors'] : [];
$fields = isset($_SESSION['fields']) ? $_SESSION['fields'] : [];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable = no">
<title>Contact</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/custom.css" rel="stylesheet">
</head>
<body>
<div class="container alt3">
<div class="page-header" id="contact">
<h2>Contact us<small> Contact us for more!</small></h2>
</div><!--end page header-->
<div class="col-lg-8">
<?php if(!empty($errors)): ?>
<div class = "panel">
<ul>
<li> <?php echo implode('</li><li>', $errors); ?></li>
</ul>
</div>
<?php endif; ?>
<?php
if (isset($_POST['email']) == true && empty($_POST['email']) == false) {
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL) == true) {
echo 'That\'s a valid email address';
} else {
echo 'Not a valid email address';
}
}
?>
<form action="contact.php" class="form-horizontal" method="post">
<div class="form-group">
<label for ="name" class="col-lg-2 control-label">
Name</label>
<div class="col-lg-10">
<input type="text" name = "name" class="form-control" id="name" placeholder="Enter your name" <?php echo isset($fields['name']) ? 'value ="' . e($fields['name']). '"' : '' ?>>
</div>
</div><!--end form-group-->
<div class="form-group">
<label for="email" class="col-lg-2 control-label"> Email</label>
<div class="col-lg-10">
<input type="text" name = "email" class="form-control" id="email" placeholder="Enter your Email Address" <?php echo isset($fields['email']) ? 'value ="' . e($fields['email']). '"' : '' ?>>
</div>
</div><!--end form-group-->
<div class="form-group">
<label for="message" class="col-lg-2 control-label"> Any message</label>
<div class="col-lg-10">
<textarea name="message" id="message" class="form-control"
cols="20" rows="10" placeholder="Enter your Message"><?php echo isset($fields['message']) ? e($fields['message']). '"' : '' ?></textarea>
</div>
</div><!--end form-group-->
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
</div>
</body>
</html>
<?php
unset($_SESSION['errors']);
?>
Ниже вот contact.php, который работает просто отлично!
Это php-бит FILTER_VALIDATE в index.php Я считаю, что это не работает. В своем видеоуроке предполагается, что он будет показывать, действительны ли адреса электронной почты или нет, поскольку он отправляется, но в моем случае он просто продолжает отправлять электронную почту независимо.
Просьба помочь.
спасибо. Как видно, я новичок в php, я просто делаю это для важного события и для рекламы в будущем, и несколько вопросов здесь трудно понять, потому что либо они не отвечают на мой вопрос, либо сам вопрос - совершенно другой код, который мне не нужен для этой основной формы контакта.
Что ** exactl ** у не работает? –
Проверка подлинности по электронной почте не работает. Если я набираю abc @ gmail, без .com, он все равно заканчивает отправку электронной почты. – OrangeLime