用html和php

时间:2015-06-24 12:00:11

标签: php html contact-form

Hi im a newbie so i tried to use some source code to create a contact form for my website it does not work so i need help here is my code: 

HTML

    <div class="col-md-6 col-sm-6">
        <div class="row contact-form">
            <form id="contact-form" action="php/mail.php">
                <fieldset class="col-md-6 col-sm-6">
                    <input id="name" type="text" name="name" placeholder="Name">
                </fieldset>
                <fieldset class="col-md-6 col-sm-6">
                    <input type="email" name="email" id="email" placeholder="Email">
                </fieldset>
                <fieldset class="col-md-12">
                    <input type="text" name="subject" id="subject" placeholder="Subject">
                </fieldset>
                <fieldset class="col-md-12">
                    <textarea name="comments" id="comments" placeholder="Message"></textarea>
                </fieldset>
                <fieldset class="col-md-12">
                    <input type="submit" name="send" value="Send Message" id="submit" class="button">
                </fieldset>
            </form> 
        </div> <!-- /.contact-form -->   
    </div> <!-- /.col-md-6 -->

PHP

    <?php
    include 'functions.php';

    if (!empty($_POST)){
        $data['success'] = true;
        $_POST = multiDimensionalArrayMap('cleanEvilTags', $_POST);
        $_POST = multiDimensionalArrayMap('cleanData', $_POST);

        // your email adress 
        $emailTo ="brinny@abvconstruction.co.za"; // "yourmail@yoursite.com";

        // from email adress
        $emailFrom ="contact@yoursite.com"; // "contact@yoursite.com";

        // email subject
        $emailSubject = "Mail from Web Contact Form ";

        $name = $_POST["name"];
        $email = $_POST["email"];
        $comment = $_POST["comment"];
        if($name == "")
            $data['success'] = false;

        if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) 
            $data['success'] = false;


        if($comment == "")
            $data['success'] = false;

        if($data['success'] == true){
            $message = "NAME: $name<br>
                EMAIL: $email<br>
                COMMENT: $comment";

            $headers = "MIME-Version: 1.0" . "\r\n"; 
            $headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; 
            $headers .= "From: <$emailFrom>" . "\r\n";
            mail($emailTo, $emailSubject, $message, $headers);

            $data['success'] = true;
            echo json_encode($data);
        }
    }

Thank you. I changed the code to this :

<?php

include 'functions.php';

if (!empty($_POST)){

  $data['success'] = true;


  //your email adress 
  $emailTo ="brinny@abvconstruction.co.za"; //"yourmail@yoursite.com";

  //from email adress
  $emailFrom = $_POST["email"]; //"contact@yoursite.com";

  //email subject
  $emailSubject = $_POST["subject"];

  $name = $_POST["name"];
  $email = $_POST["email"];
  $comments = $_POST["comments"];
  if($name == "")
   $data['success'] = false;

 if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) 
   $data['success'] = false;


 if($comments == "")
   $data['success'] = false;

 if($data['success'] == true){

  $message = "NAME: $name<br>
  EMAIL: $email<br>
  COMMENT: $comments";


  $headers = "MIME-Version: 1.0" . "\r\n"; 
  $headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; 
  $headers .= "From: <$emailFrom>" . "\r\n";
  mail($emailTo, $emailSubject, $message, $headers);

  $data['success'] = true;
  echo json_encode($data);
}`enter code here`
}

我还想知道我是否应该使用php_redirect让浏览器打开html文件而不是php文件

该网站是abvconstruction.co.za。如果任何人可以检查我的代码上的错误

2 个答案:

答案 0 :(得分:1)

首先,您必须将method="post"添加到<form>,否则它会使用GET发送数据。

同时删除这些清除POST数据的行:

$_POST  = multiDimensionalArrayMap('cleanEvilTags', $_POST);
$_POST  = multiDimensionalArrayMap('cleanData', $_POST);

答案 1 :(得分:1)

首先删除这些行,然后清除帖子值

  $_POST  = multiDimensionalArrayMap('cleanEvilTags', $_POST);
  $_POST  = multiDimensionalArrayMap('cleanData', $_POST);