2016-11-09 1 views
-2

J'essaie d'ajouter un champ téléphonique dans un formulaire de contact mais quand je le fais, le script cesse de fonctionner et je ne reçois pas d'e-mail.Champ de téléphone est en train de casser mon formulaire de contact

<?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;    
?> 

Et voici le code html J'utilise:

 <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> 

La forme fonctionne parfaitement bien si je ne pas mettre le téléphone dans le script php, mais dès que je l'ajoute, il arrête de travailler. Je suppose que je me trompe de valeurs, mais je ne sais pas grand-chose sur PHP.

Je crois maintenant qu'il ya un problème avec la validation AJAX script.You peut voir le script vivre ici http://talleresnaj2.com/js/contacto.min.js

+1

Vous avez oublié de lui donner un 'name' attribut:' name = "téléphone" '. Maintenant, il sera toujours vide lorsque vous vérifiez pour cela. – jeroen

+0

Ce n'est pas ça. Je n'ai aucun attribut de nom dans les groupes de contrôle et ils fonctionnent toujours correctement. Je l'ai fait quand même, mais je ne peux toujours pas recevoir les messages sur mon email. @jeroen aToutes autres pensées? –

+0

Si vous utilisez ajax pour poster le formulaire, vous devez également ajouter le javascript à votre question. – jeroen

Répondre

1

Votre <input /> n'a pas un attribut name, d'où sa valeur est jamais envoyé à PHP script, rendant empty($_POST['telephone']) renvoyer true. Vous avez juste besoin d'ajouter name="telephone" dans votre input.

+0

Ne pensez pas que c'est ce qui fait casser le script ... –

+0

@MasivuyeCokile Oui, sauf si l'OP utilise ajax . – jeroen

+0

@jeroen Pensez-vous qu'il utilise ajax –

0

Vous avez oublié d'ajouter le nom de l'entrée.

Essayez

<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

donc vous pensez que le script a éclaté à cause de cela? –

+0

Il vérifie si le champ "téléphone" est vide. Si ce n'est pas le cas, l'instruction retournera 'true'. Ce qui dans ses déclarations suggère qu'il «retournera faux». Alors ça casse. – Axel

+0

Il utilise ajax –