Page de contact qui fonctionne à 50%

Petit nouveau ! | 3 Messages

11 janv. 2016, 14:23

Bonjour, j'ai une page sur mon site web avec de requis, le nom, le mail et le message mais ne me parviennent que ces infos là :

Le Nom:
Adresse Email:
Objet:
Le Message:


... je reçois tout sauf le contenu des champs sensés être remplis par le visiteur du site et Je ne vois pas où ça cloche (paumé je suis xD). Si quelqu'un pouvait me dire où se situe l'erreur (normalement c'est un code par défaut ça devrait fonctionner :roll: )

Voici la portion mail de la page
[code]<div class="status alert alert-success" style="display: none"></div>
 <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
      <div class="row">
          <div class="col-sm-6">
              <div class="form-group">
                    <input type="text" class="form-control" required="required" placeholder="Entrez votre nom">
              </div>
          </div>
          <div class="col-sm-6">
              <div class="form-group">
                    <input type="text" class="form-control" required="required" placeholder="Entrez votre email">
              </div>
          </div>
      </div>
      <div class="row">
          <div class="col-sm-12">
              <div class="form-group">
                    <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Tapez votre message"></textarea>
              </div>
              <div class="form-group">
                  <button type="submit" class="btn btn-danger btn-lg">Envoyer le message</button>
              </div>
          </div>
      </div>
  </form>
</div><!--/.col-sm-6-->[/code]
Voilà la page php en charge d'envoyer les mails :

Code : Tout sélectionner

[PHP]<?php header('Content-type: application/json'); $status = array( 'type'=>'success', 'message'=>'Email envoyé!' ); $name = @trim(stripslashes($_POST['name'])); $email = @trim(stripslashes($_POST['email'])); $subject = @trim(stripslashes($_POST['subject'])); $message = @trim(stripslashes($_POST['message'])); $email_from = $email; $email_to = '[email protected]'; $body = 'Le Nom: ' . $name . "\n\n" . 'Adresse Email: ' . $email . "\n\n" . 'Objet: ' . $subject . "\n\n" . 'Le Message: ' . $message; $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); echo json_encode($status); die; [/PHP]
Merci de vos conseils avisés... je cherche aussi de mon côté.

Alain.

Mammouth du PHP | 688 Messages

11 janv. 2016, 14:48

il manque le champ subject
les 3 champs n'ont pas d'atribut name

Mammouth du PHP | 1967 Messages

11 janv. 2016, 14:52

Tes 2 inputs ne sont pas identifié dans ton html, donc tu ne récupéreras rien en _POST

Il n'y a pas d'input pour le sujet, donc pas de retour possible non plus.

Vérifie le contenu de ton tableau $_POST après soumission du formulaire

Retire le @ devant ta fonction mail, et recupère les erreurs autrement si tu veux, mais là c'est un cache misère
de même devant tes trim(), une vérification isset ou empty est plus indiquée
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 3 Messages

11 janv. 2016, 15:17

Merci de vos réponses ; n'étant pas chez moi je testerai ça ce soir ;)