2015-04-30 6 views
0

Я создаю веб-сайт, и моя единственная функциональность, контактная форма, нуждается в том, чтобы изменить последний бит, чтобы быть действительно успешным. Я могу отправить электронную почту через 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, я просто делаю это для важного события и для рекламы в будущем, и несколько вопросов здесь трудно понять, потому что либо они не отвечают на мой вопрос, либо сам вопрос - совершенно другой код, который мне не нужен для этой основной формы контакта.

+0

Что ** exactl ** у не работает? –

+0

Проверка подлинности по электронной почте не работает. Если я набираю abc @ gmail, без .com, он все равно заканчивает отправку электронной почты. – OrangeLime

ответ

0

Кажется, что конец </from> тег отсутствует.

+0

Это на самом деле там. Когда я копирую свой код здесь, я пропустил его, так как мне пришлось вырезать много кода с основного сайта. Извини за это! – OrangeLime

-1

Ваш form тег действия указывает на contact.php файл.

Вы должны подтвердить электронный адрес и не на странице index.php.

Итак, у вас есть

if (isset($_POST['name'], $_POST['email'], $_POST['message'])) { 
    // right now check the email. If it's ok - keep on, if not add to $errors some message 
+0

Итак, php с FILTER_VALIDATE должен быть в contact.php? Вы можете видеть это в моем github и рассказывать где? – OrangeLime

+0

Хорошо, я обновлю свой вопрос. –

+0

Downvote? Кто это сделал и почему? –