Bonjour !

Je suis en train de créer mon premier formulaire, je l'ai fait html/css. Seulement maintenant je dois le faire fonctionner et pour cela j'ai suivi des vidéos sur youtube. Je ne connais pas Php et c'est une premiere pour moi avec ce language. Et je galère pas mal, j'ai suivis toute les instructions et mon code ne fonctionne pas : Quand je clique sur "envoyer" il ne se passe rien du tout. Comme si mes boutons ne fonctionnaient pas. J'ai beau lire et relire mon code je n'arrive pas à trouver l'origine du problème, je suis bloqué depuis hier soir. Voici mon code php :

""
<?php
require_once(DIR . '/vendor/autoload.php');
use \Mailjet\Resources;
define('API_PUBLIC_KEY', '****');
define('API_PRIVATE_KEY', '****');
$mj = new \Mailjet\Client(API_PUBLIC_KEY, API_PRIVATE_KEY,true,['version' => 'v3.1']);

if(!empty($_POST['surname']) && !empty($_POST['firstname']) && !empty($_POST['email']) && !empty($_POST['message'])){
    $surname = htmlspecialchars($_POST['surname']);
    $firstname = htmlspecialchars($_POST['firstname']);
    $email = htmlspecialchars($_POST['email']);
    $message = htmlspecialchars($_POST['message']);

    if(filter_var($email, FILTER_VALIDATE_EMAIL)){
        $body = [
            'Messages' => [
              [
                'From' => [
                  'Email' => "a******@*******.fr",
                  'Name' => "Amandine"
                ],
                'To' => [
                  [
                    'Email' => "a*******@******.fr",
                    'Name' => "Amandine"
                  ]
                ],
                'Subject' => "Demande de renseignement",
                'TextPart' => "$email, $message",

                'CustomID' => "AppGettingStartedTest"
              ]
            ]
          ];
          $response = $mj->post(Resources::$Email, ['body' => $body]);
          $response->success();
        echo "Email envoyé avec succès !";
    }
    else{
        echo "Email non valide";
    }

} else {
    header('Location: contact.html');
    die();
}   
""

Et mon code html : "

<div class="div5">

    <div class="formulaire"> </div>
    <div id="formulaire">
       <form action="php/contact.php" method="post">
           <fieldset>
           <p><label for="surname">Nom<sup></sup></label>
              <input type="text" name="surname" required/>
           </p>
           <p><label for="firstname">Prénom<sup></sup></label>
              <input type="text" name="firstname" required/>
           </p>
           <p><label for="email">Email<sup></sup></label>
              <input type="email" name="email"  required/> 
           </p>
            <p><label for="tel">Téléphone</label>
              <input type="tel" name="tel"/> 
           </p>
           <p><label for="message">Message<sup></sup></label>
              <textarea name="message" id="message" placeholder="Pas plus de 500 caractères" cols="40" rows="10" maxlength="500" required></textarea>
            </p>   
      </fieldset>      

       </form> </div>

    <div class="div7"> 
        <p class="bouton">
           <input type="submit" class="btn-form" style="opacity: 1;" value="envoyer"/>
           <input type="reset" class="btn-form" style="opacity: 1;" value="effacer"/>
           </p></div>
        </div>
        "

Je suis assez desesperé parce que je n'ai aucune piste à propos de mon erreur, peut etre que je suis un peu trop focus dessus et ça m'empeche de voir ce qui cloche (ça fait des heures que je cherche une solution en ligne) Du coup si vous avez une piste pour m'aider à resoudre mon code je vous serais extrêmement reconnaissante

2 réponses


Hello, alors déjà je reposte ton code en propre pour qu'il soit lisible ^^

<?php
require_once(DIR . '/vendor/autoload.php');
use \Mailjet\Resources;
define('API_PUBLIC_KEY', '****');
define('API_PRIVATE_KEY', '****');
$mj = new \Mailjet\Client(API_PUBLIC_KEY, API_PRIVATE_KEY,true,['version' => 'v3.1']);

if(!empty($_POST['surname']) && !empty($_POST['firstname']) && !empty($_POST['email']) && !empty($_POST['message'])){
    $surname = htmlspecialchars($_POST['surname']);
    $firstname = htmlspecialchars($_POST['firstname']);
    $email = htmlspecialchars($_POST['email']);
    $message = htmlspecialchars($_POST['message']);

    if(filter_var($email, FILTER_VALIDATE_EMAIL)){
        $body = [
            'Messages' => [
              [
                'From' => [
                  'Email' => "a******@*******.fr",
                  'Name' => "Amandine"
                ],
                'To' => [
                  [
                    'Email' => "a*******@******.fr",
                    'Name' => "Amandine"
                  ]
                ],
                'Subject' => "Demande de renseignement",
                'TextPart' => "$email, $message",

                'CustomID' => "AppGettingStartedTest"
              ]
            ]
          ];
          $response = $mj->post(Resources::$Email, ['body' => $body]);
          $response->success();
        echo "Email envoyé avec succès !";
    }
    else{
        echo "Email non valide";
    }

} else {
    header('Location: contact.html');
    die();
}   

Et mon code html : "

<div class="div5">
    <div class="formulaire"></div>

    <div id="formulaire">
       <form action="php/contact.php" method="post">
           <fieldset>
               <p><label for="surname">Nom<sup></sup></label>
                  <input type="text" name="surname" required/>
               </p>
               <p><label for="firstname">Prénom<sup></sup></label>
                  <input type="text" name="firstname" required/>
               </p>
               <p><label for="email">Email<sup></sup></label>
                  <input type="email" name="email"  required/> 
               </p>
                <p><label for="tel">Téléphone</label>
                  <input type="tel" name="tel"/> 
               </p>
               <p><label for="message">Message<sup></sup></label>
                  <textarea name="message" id="message" placeholder="Pas plus de 500 caractères" cols="40" rows="10" maxlength="500" required></textarea>
                </p>   
          </fieldset>
       </form>
   </div>

   <div class="div7"> 
       <p class="bouton">
           <input type="submit" class="btn-form" style="opacity: 1;" value="envoyer"/>
           <input type="reset" class="btn-form" style="opacity: 1;" value="effacer"/>
       </p>
   </div>
</div>

Okay alors ton input type submit et reset doivent se trouver dans le bloc <form> pour qu'il puisse fonctionner ;)

<form action="php/contact.php" method="post">
           <fieldset>
               <p><label for="surname">Nom<sup></sup></label>
                  <input type="text" name="surname" required/>
               </p>
               <p><label for="firstname">Prénom<sup></sup></label>
                  <input type="text" name="firstname" required/>
               </p>
               <p><label for="email">Email<sup></sup></label>
                  <input type="email" name="email"  required/> 
               </p>
                <p><label for="tel">Téléphone</label>
                  <input type="tel" name="tel"/> 
               </p>
               <p><label for="message">Message<sup></sup></label>
                  <textarea name="message" id="message" placeholder="Pas plus de 500 caractères" cols="40" rows="10" maxlength="500" required></textarea>
                </p>   
          </fieldset>

          <div class="div7"> 
               <p class="bouton">
                   <input type="submit" class="btn-form" style="opacity: 1;" value="envoyer"/>
                   <input type="reset" class="btn-form" style="opacity: 1;" value="effacer"/>
               </p>
   </div>
</form>