PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » aide formulaire de contact en php verif du textarea et redirrection. » 29-03-2017 12:31:58

bonsoir;


si mon mail est envoyé et je le reçois dans la base de donnée ainsi que dans ma boite mail, la redirection se fait aussi mais je n'ai pas mon message comme quoi 'votre message à bien été envoyé' du fait je pense que mon header est mal placé et là je sèche complétement.
Je remet le code pour que vous puissiez voir ou est placé mon header.

Page contact.php

<?php
$erreur = ''; // message d'erreur si tous les champs du formulaire ne sont pas remplient.

if(!empty($_POST)) {
  if(!empty($_POST['Civilite']) || !empty($_POST['Nom']) || !empty($_POST['email']) || !empty($_POST['telephone']) || !empty($_POST['objet']) || !empty($_POST['message'])){
      if(strlen($_POST['Nom']) < 2){

            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Votre nom doit contenir au moins deux lettres!. </p>';

      }elseif(!preg_match('#^0[1-6789][0-9]{8}$#', $_POST['telephone'])) {

            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> le numero de telephone doit contenir dix chiffres et pas d\'espace!.</p>';

      }elseif(!preg_match('#^[a-z0-9.-_]+@[a-z0-9.-_]{2,}\.[a-z]{2,4}$#', $_POST['email'])){

            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Veuillez rentrez une adresse mail valide!.</p>';

      }elseif(strlen($_POST['message']) == 0){

            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Veuillez ajoutez votre message!.</p>';

      }else{
            $insertion = $pdo->prepare('INSERT INTO contact(Civilite, Nom, email, telephone, objet, message)
            VALUES (:Civilite, :Nom, :email, :telephone, :objet, :message)');
            $insertion->bindValue(':Civilite', $_POST['Civilite'], PDO::PARAM_STR);
            $insertion->bindValue(':Nom', $_POST['Nom'], PDO::PARAM_STR);
            $insertion->bindValue(':email', $_POST['email'], PDO::PARAM_STR);
            $insertion->bindValue(':telephone', $_POST['telephone'], PDO::PARAM_INT);
            $insertion->bindValue(':objet', $_POST['objet'], PDO::PARAM_STR);
            $insertion->bindValue(':message', $_POST['message'], PDO::PARAM_STR);
            $insertion->execute();
 

            $to = 'mon adresse mail';
            $objet = $_POST['objet'];
            $message = $_POST['message'];
            $headers = 'content-type: text/plain charset=UTF-8'."\r\n";
            $headers = 'From: '.$_POST['Nom'].' <'.$_POST['email'].'>'. "\r\n\r\n";
            $headers .= 'reply-to:'.$_POST['email']. "\r\n\r\n";


                     
          //----------envoie du mail

          if(mail($to, $objet, $message, $headers))
          {
          $erreur .= '<p class="alert alert-success" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Votre message à bien été envoyé. !</p>';

          $_POST['Civilite'] ='';
          $_POST['Nom'] ='';
          $_POST['email'] ='';                 // on vide le formulaire après l'envoie.
          $_POST['telephone'] ='';
          $_POST['objet'] ='';
          $_POST['message'] ='';  

          header('location: contact.php');
         
          }
        }
      }
    }
?>
 

si vous pouviez me donner un coup de pouce je sèche complétement. merci bien

#2 Re : Forum Général PHP » aide formulaire de contact en php verif du textarea et redirrection. » 29-03-2017 12:31:58

bonsoir,

je n'arrive toujours pas avec ma redirection avec header car là ou je le met dans le code le rafraichissement de ma page ne ce fait plus ça c'est ok, mais  il empêche l'affichage du message "votre message à bien été envoyé" après la soumission du formulaire.

alors si quelqu'un peux m’aidè ce serait vraiment bien, je ne trouve pas la solution, merci beaucoup d'avance....

#3 Re : Forum Général PHP » aide formulaire de contact en php verif du textarea et redirrection. » 29-03-2017 12:31:58

Salut Pierrot,


en effet le fait de changer ça


if(!empty($_POST['Civilite']) && !empty($_POST['Nom']) && !empty($_POST['email']) && !empty($_POST['telephone']) && !empty($_POST['objet']) && !empty($_POST['message'])){
 

par ça:


if(!empty($_POST['Civilite']) || !empty($_POST['Nom']) || !empty($_POST['email']) || !empty($_POST['telephone']) || !empty($_POST['objet']) || !empty($_POST['message'])){
 

M'affiche bien le message d'erreur "veuillez ajouter votre message" donc vraiment merci, il me reste maintenant le problème de redirection avec le header('location: contact.php'); que je ne sais pas où placé dans le code, car actuellement là ou il est placé cela fonctionne la page est redirigé et sans doublons dans la base de données, mais le soucis c'est que je n'ai pas le message qui averti l’utilisateur que le message à bien été envoyé.

alors si vous pouviez m'aider car je sèche vraiment. merci, je remet le code ci-dessous. 

page contact.php

<?php
$erreur = ''; // message d'erreur si tous les champs du formulaire ne sont pas remplient.
 
if(!empty($_POST)) {
  if(!empty($_POST['Civilite']) || !empty($_POST['Nom']) || !empty($_POST['email']) || !empty($_POST['telephone']) || !empty($_POST['objet']) || !empty($_POST['message'])){
 
 
      if(strlen($_POST['Nom']) < 2){
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Votre nom doit contenir au moins deux lettres!. </p>';
 
      }elseif(!preg_match('#^0[1-6789][0-9]{8}$#', $_POST['telephone'])) {
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> le numero de telephone doit contenir dix chiffres et pas d\'espace!.</p>';
 
      }elseif(!preg_match('#^[a-z0-9.-_]+@[a-z0-9.-_]{2,}\.[a-z]{2,4}$#', $_POST['email'])){
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Veuillez rentrez une adresse mail valide!.</p>';
 
      }elseif(strlen($_POST['message']) == ''){
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Veuillez ajoutez votre message!.</p>';
 
      }else{
            $insertion = $pdo->prepare('INSERT INTO contact(Civilite, Nom, email, telephone, objet, message)
            VALUES (:Civilite, :Nom, :email, :telephone, :objet, :message)');
            $insertion->bindValue(':Civilite', $_POST['Civilite'], PDO::PARAM_STR);
            $insertion->bindValue(':Nom', $_POST['Nom'], PDO::PARAM_STR);
            $insertion->bindValue(':email', $_POST['email'], PDO::PARAM_STR);
            $insertion->bindValue(':telephone', $_POST['telephone'], PDO::PARAM_INT);
            $insertion->bindValue(':objet', $_POST['objet'], PDO::PARAM_STR);
            $insertion->bindValue(':message', $_POST['message'], PDO::PARAM_STR);
            $insertion->execute();
 
          header('location: contact.php');
 
            $to = 'adresse mail';
            $objet = $_POST['objet'];
            $message = $_POST['message'];
            $headers = 'content-type: text/plain charset=UTF-8'."\r\n";
            $headers = 'From: '.$_POST['Nom'].' <'.$_POST['email'].'>'. "\r\n\r\n";
            $headers .= 'reply-to:'.$_POST['email']. "\r\n\r\n";
 
 
                     
          //----------envoie du mail
 
          if(mail($to, $objet, $message, $headers))
          {
 
          $_POST['Civilite'] ='';
          $_POST['Nom'] ='';
          $_POST['email'] ='';
          $_POST['telephone'] ='';
          $_POST['objet'] ='';
          $_POST['message'] ='';
 
          $erreur .= '<p class="alert alert-success" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Votre message à bien été envoyé. !</p>';
       
          }else{
 
          $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Merci de remplir Tous les champs </p>';
 
 
          }
        }
      }
    }
?>
 
 

#4 Forum Général PHP » aide formulaire de contact en php verif du textarea et redirrection. » 29-03-2017 12:31:58

sidiki
Réponses : 6

Bonjour,

je suis débutant en PHP, et aimerai avoir de l'aide sur mon formulaire de contact pour lequel les mails sont réceptionnés en base de données. voilà j'ai plusieurs champs dans mon formulaire , civilité, nom, émail, téléphone, objet et message, toutes les vérifications du formulaire fonctionne sauf le dernier le champs message (textarea).
si ce champs n'est pas rempli lors de l’envoie je n'arrive pas à afficher un message d'erreur "veuillez rempli le champs message", mais le message est pas envoyer, aussi si le champs est bien rempli le formulaire est envoyé mais là pareil je n'arrive pas à afficher "votre message à bien été envoyé". je pense que c'est à cause du au  header: location que je met pour éviter le rafraichissement de la page et éviter les doublons  en base de donnée.

Mes questions sont comment vérifier en PHP le champs message(textarea) pour avoir le message d'erreur si ce champs est pas rempli?.
Ma deuxième question porte sur la redirection avec le header: location que je ne sais pas ou mettre car là ou je le met ça marche mais je n'ai plus le message "votre message à bien été envoyé". je sèche complétement ai fouiné sur beaucoup de sites et forums sans trouver la solution.

je m'adresse donc à vous pour avoir votre aide et vous met mon code PHP ci après. en vous remerciant.

page contact.php


<?php
$erreur = ''; // message d'erreur si tous les champs du formulaire ne sont pas remplient.
 
if(!empty($_POST)) {
  if(!empty($_POST['Civilite']) && !empty($_POST['Nom']) && !empty($_POST['email']) && !empty($_POST['telephone']) && !empty($_POST['objet']) && !empty($_POST['message'])){
 
 
      if(strlen($_POST['Nom']) < 2){
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Votre nom doit contenir au moins deux lettres!. </p>';
 
      }elseif(!preg_match('#^0[1-6789][0-9]{8}$#', $_POST['telephone'])) {
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> le numero de telephone doit contenir dix chiffres et pas d\'espace!.</p>';
 
      }elseif(!preg_match('#^[a-z0-9.-_]+@[a-z0-9.-_]{2,}\.[a-z]{2,4}$#', $_POST['email'])){
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Veuillez rentrez une adresse mail valide!.</p>';
 
      }elseif(strlen($_POST['message']) == ''){
 
            $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Veuillez ajoutez votre message!.</p>';
 
      }else{
            $insertion = $pdo->prepare('INSERT INTO contact(Civilite, Nom, email, telephone, objet, message)
            VALUES (:Civilite, :Nom, :email, :telephone, :objet, :message)');
            $insertion->bindValue(':Civilite', $_POST['Civilite'], PDO::PARAM_STR);
            $insertion->bindValue(':Nom', $_POST['Nom'], PDO::PARAM_STR);
            $insertion->bindValue(':email', $_POST['email'], PDO::PARAM_STR);
            $insertion->bindValue(':telephone', $_POST['telephone'], PDO::PARAM_INT);
            $insertion->bindValue(':objet', $_POST['objet'], PDO::PARAM_STR);
            $insertion->bindValue(':message', $_POST['message'], PDO::PARAM_STR);
            $insertion->execute();
 
          header('location: contact.php');
 
            $to = 'adresse mail';
            $objet = $_POST['objet'];
            $message = $_POST['message'];
            $headers = 'content-type: text/plain charset=UTF-8'."\r\n";
            $headers = 'From: '.$_POST['Nom'].' <'.$_POST['email'].'>'. "\r\n\r\n";
            $headers .= 'reply-to:'.$_POST['email']. "\r\n\r\n";
 
 
                     
          //----------envoie du mail
 
          if(mail($to, $objet, $message, $headers))
          {
 
          $_POST['Civilite'] ='';
          $_POST['Nom'] ='';
          $_POST['email'] ='';
          $_POST['telephone'] ='';
          $_POST['objet'] ='';
          $_POST['message'] ='';
 
          $erreur .= '<p class="alert alert-success" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Votre message à bien été envoyé. !</p>';
       
          }else{
 
          $erreur .= '<p class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only"></span> Merci de remplir Tous les champs </p>';
 
 
          }
        }
      }
    }
?>
 

Pied de page des forums

Propulsé par FluxBB