2014-10-24 3 views
0

У меня есть сайт для бизнес-сайта twitter bootstrap и хотел бы добавить два поля в форму. Форма говорит, что ее отправили, но ничего не получено.bootstrap form - can not add fields

Heres моя форма и контакт-me.php

<form name="sentMessage" id="contactForm" novalidate> 
 
        <div class="control-group form-group"> 
 
         <div class="controls"> 
 
          <label>Full Name:</label> 
 
          <input type="text" class="form-control" id="name" required data-validation-required-message="Please enter your name."> 
 
          <p class="help-block"></p> 
 
         </div> 
 
        </div> 
 
        
 
        
 
        
 
        <div class="control-group form-group"> 
 
         <div class="controls"> 
 
          <label>Foo:</label> 
 
          <input type="text" class="form-control" id="foo" required data-validation-required-message="foo."> 
 
          <p class="help-block"></p> 
 
         </div> 
 
        </div> 
 
        
 
        <div class="control-group form-group"> 
 
         <div class="controls"> 
 
          <label>Foo2:</label> 
 
          <input type="text" class="form-control" id="foo2" required data-validation-required-message="foo2."> 
 
          <p class="help-block"></p> 
 
         </div> 
 
        </div> 
 
        
 
             
 
        <div class="control-group form-group"> 
 
         <div class="controls"> 
 
          <label>Phone Number:</label> 
 
          <input type="tel" class="form-control" id="phone" required data-validation-required-message="Please enter your phone number."> 
 
         </div> 
 
        </div> 
 
        <div class="control-group form-group"> 
 
         <div class="controls"> 
 
          <label>Email Address:</label> 
 
          <input type="email" class="form-control" id="email" required data-validation-required-message="Please enter your email address."> 
 
         </div> 
 
        </div> 
 
        <div class="control-group form-group"> 
 
         <div class="controls"> 
 
          <label>Message:</label> 
 
          <textarea rows="10" cols="100" class="form-control" id="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea> 
 
         </div> 
 
        </div> 
 
        <div id="success"></div> 
 
        <!-- For success/fail messages --> 
 
        <button type="submit" class="btn btn-primary">Send Message</button> 
 
       </form>

и мой контакт-меня-PHP

<?php 
// check if fields passed are empty 
if(empty($_POST['name'])  || 
    empty($_POST['foo'])   || 
    empty($_POST['foo2'])  || 
    empty($_POST['phone'])  || 
    empty($_POST['email'])  || 
    empty($_POST['message']) || 
    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
    { 
    echo "No arguments Provided!"; 
    return false; 
    } 

$name = $_POST['name']; 
$foo = $_POST['foo']; 
$foo2 = $_POST['foo2']; 
$phone = $_POST['phone']; 
$email_address = $_POST['email']; 
$message = $_POST['message']; 

// create email body and send it  
$to = '[email protected]'; // PUT YOUR EMAIL ADDRESS HERE 
$email_subject = "Modern Business Contact Form: $name"; // EDIT THE EMAIL SUBJECT LINE HERE 
$email_body = "You have received a new message from your website's contact form.\n\n"."Here are the details:\n\nName: $name\n\nfoo: $foo\n\nfoo2: $foo2\n\nPhone: $phone\n\nEmail: $email_address\n\nMessage:\n$message"; 
$headers = "From: [email protected]\n"; 
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers); 
return true;    
?> 

ответ

0
  • проверять, сверять и постфильтр данных см., правильно ли поступают данные.
  • Убедитесь, вы можете отправить почту с сервера, который вы используете и конфигурации (SMTP и т.д.) правильно установлен
  • Рассмотрим using a mail library вместо того, чтобы вручную работать с подверженных ошибкам почты заголовки, содержание тела и все, что связано
  • Ваши электронные письма могут быть classified as spam и, таким образом, не проходят через
+0

Hi Elias - спасибо за это. Все работало до того, как я добавил два новых поля. Любые советы о том, как проверять, проверять и фильтровать данные POST. – SimonB

+0

Используйте функции дампа (например, [var_dump] (http://php.net/var_dump), [print_r] (http://php.net/print_r)) для проверки, проверки выведенных данных и данных, которые вы отправили. Фильтрация предназначена для предотвращения [вставки заголовка] (http://stackoverflow.com/a/11040786/1777956), которая в настоящее время возможна в вашем скрипте. – Elias

+0

Я удалил раздел проверки из contact-me.php. Форма теперь отправляется, но два новых поля пустые. Еще раз спасибо за вашу помощь. Я должен был сказать, что мои знания php довольно ограничены, но я очень хочу учиться :) – SimonB

0

Я думаю, что у вас должно быть атрибут «имя» для ваших входов. Они не являются действительными органами управления, source

0

Спасибо за вашу помощь. Я включил firebug и узнал, что мне не хватает данных POST. После немного поцарапанной головы я обнаружил, что мне пришлось также редактировать my contact_me.js (он помогает не изменять его в шаблоне) Еще раз спасибо!