2016-11-09 2 views
-2

Я пытаюсь добавить телефонное поле в форму контакта, но когда я это сделаю, скрипт перестает работать, и я не получаю письмо.Телефонное поле разбивает мою контактную форму

<?php 
// check if fields passed are empty 
if(empty($_POST['name'])  || 
    empty($_POST['email'])  || 
    empty($_POST['telephone'])  || 
    empty($_POST['message']) || 
    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
    { 
    echo "No se ha introducido toda la información."; 
    return false; 
    } 

$name = $_POST['name']; 
$email_from = $_POST['email']; 
$telephone = $_POST['telephone']; 
$message = $_POST['message']; 

// create email body and send it  
$to = '[email protected]'; // put your email 
$email_subject = "Formulario de Contacto Con la Mochila al Hombro"; 
$email_body = "Has recibido un mensaje desde el formulario de contacto de la Web. \n\n". 
       "Aquí están los detalles:\n\n". 
       "Nombre: $name \n\n". 
       "Email: $email_from\n\n". 
       "Teléfono: $telephone\n\n". 
       "Mensaje: $message";  
$headers = 'From: '.$email_from."\r\n". 
      'X-Mailer: PHP/' . phpversion(); 
mail($to,$email_subject,$email_body,$headers); 
return true;    
?> 

И это HTML я использую:

 <div class="control-group"> 
      <div class="controls"> 
       <input type="phone" class="form-control" placeholder="Teléfono" id="telephone" required data-validation-required-message="Por favor, dinos tu teléfono para que podamos contactar contigo." /> 
      </div> 
     </div> 

форма отлично работает, если Я не положил телефон в сценарии PHP, но как только я добавляю его, его перестает работать. Я предполагаю, что устанавливаю некоторые значения неправильно, но я действительно не знаю, как много упираться в PHP.

теперь я считаю, что это проблема с проверкой AJAX script.You можно увидеть сценарий жить здесь http://talleresnaj2.com/js/contacto.min.js

+1

Вы забыли дать ему 'name' атрибут:' имя = "телефон" '. Теперь он всегда будет пустым, когда вы его проверите. – jeroen

+0

Это не так. У меня нет атрибута имени в любой из групп управления, и они все еще работают нормально. Я все равно сделал это, но я все равно не могу получать сообщения по электронной почте. @jeroen aAny другие мысли? –

+0

Если вы используете ajax для отправки формы, вы должны добавить javascript к вашему вопросу. – jeroen

ответ

1

Ваш <input /> не имеет атрибута name, следовательно, его значение никогда не передается в PHP сценарий, делая empty($_POST['telephone']) return true.

Вам просто нужно добавить name="telephone" в ваш input.

+0

Не думайте, что делает скрипт ломающимся ... –

+0

@MasivuyeCokile Да, если только OP не использует ajax , – jeroen

+0

@jeroen Подумайте, что он использует ajax –

0

Вы забыли добавить имя входа.

Попробуйте

<input name="telephone" type="phone" class="form-control" placeholder="Teléfono" id="telephone" required data-validation-required-message="Por favor, dinos tu teléfono para que podamos contactar contigo." /> 
+0

, так что вы думаете, что сценарий сломался из-за этого? –

+0

Он проверяет, пусто ли «телефон». Если его там нет, оператор вернет 'true'. Что в его высказываниях предполагает, что он «вернет ложь». Так что это ломается. – Axel

+0

Он использует ajax –

Смежные вопросы