2016-11-09 5 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

を試してみてください。あなたがそれをチェックすると、今は常に空になります。 – jeroen

+0

それはそれではありません。私はコントロールグループのいずれかに名前属性を持っておらず、彼らはまだうまく動作します。私はとにかくそれをした、しかし私はまだ私の電子メールのメッセージを受け取ることができません。 @jeroen aAny他の考え? –

+0

フォームを投稿するためにajaxを使用している場合は、あなたの質問にもjavascriptを追加する必要があります。 – jeroen

答えて

1

あなた<input />が、その値はPHPに送信されることはありませんため、name属性を持っていないに住んで見ることができると信じてスクリプトは、empty($_POST['telephone'])をtrueにします。

あなたのinputname="telephone"を追加するだけです。

+0

スクリプトが中断してしまうとは思わないでください... –

+0

@MasivuyeCokile OPはajax 。 – jeroen

+0

@jeroen彼はアヤックスを使用していると思っています –

0

入力名を追加していません。 `名前は= "電話"`:

は、あなたがそれを `name`の属性を与えることを忘れてしまった

<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を使用しています –

関連する問題