联系表格电子邮件验证

时间:2015-04-30 21:00:43

标签: php html twitter-bootstrap contact-form

我正在创建一个网站,我的一个功能,即联系表单,需要最后一点调整才能真正成功。由于youtube上的精彩视频,我可以通过SMTP发送电子邮件。但另一个教程(由同一个上传者)已经展示了如何验证电子邮件地址并且我有代码,但是当我将它与我的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,工作得很好!

这是index.php中的“FILTER_VALIDATE”php位我相信这不起作用。在他的视频教程中,它应该显示电子邮件地址在提交时是否有效,但在我的情况下,它只是不断发送电子邮件。

请帮忙。

谢谢。很明显,我是php的新手,我只是为了一个重要的活动,为了未来的广告目的这样做,这里的几个问题很难理解,因为要么他们不回答我的问题,要么问题本身是一个完全不同的代码,我不需要这个基本的联系表格。

2 个答案:

答案 0 :(得分:0)

似乎缺少结尾</from>标记。

答案 1 :(得分:-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