IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire de contact


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Formulaire de contact
    Bonjour je suis bénévole dans une association de protection animal

    j'ai un petit soucis aujourd’hui " nous devons envoyé des fichiers pdf au futur adoptant pour qu'il les imprimes remplisse est sois nous les revois par la poste ou scanne et revois par mail

    j'aurai aimé facilité la démarche avec un formulaire

    j'en ai trouvé un ici qui me plais beaucoup mais la base a une erreur non résolu et je ne trouve pas la solution

    celui-çi : https://www.developpez.net/forums/d1.../#post10379456

    Pour moi vue que dans le pdf il a beaucoup de réponse a choix multiple la fonction <input type="checkbox" serai plus simple a mettre en place

    Donc je vient a vous pour me dire:

    • si il serai fonctionnel
    • si après validation je pourra redirigé la page vers une autre avec texte: nous avons bien reçus ......


    avant de me lancé a refaire les 3 pages de question

    Merci d'avance
    Cordialement

  2. #2
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour, je n'arrive pas à trouver l'erreur pour pouvoir avancé

    j'ai toujours:

    Il y a une erreur dans votre formulaire :
    - Remplissez tous les champs obligatoires, merci.

    Merci de corriger.


    Page : contact.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
     
    <?php 
    // -----------------
    // FONCTIONS utiles
    /* cette fonction sert à nettoyer et enregistrer un texte */
    function Rec($text)
    {
    	$text = trim($text); // delete white spaces after & before text
    	$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
    	return $text;
    };
    /* Cette fonction sert à vérifier la syntaxe d'un email */
    function IsEmail($email)
    {
    	$test = filter_var( $email, FILTER_VALIDATE_EMAIL );
        return (!empty($test));
    };
     
    /* Cette fonction sert à vérifier la syntaxe d'un numéro de téléphone */
    function IsTel($tel)
    {
    	$pattern = "/^[+]?[0-9. \/]{6,20}$/"; // tél de la forme (6 à 20 caractères): +33 1 23 45 67 89 ou 0123456789 ou 01 23 45 67 89 ou 01.23.45.67.89 ou 01/23/45/67/89...
    	return (preg_match($pattern,$tel)); // true ou false
    };
    // -----------------
    // INITIALISATION ou récupération des données
    	// formulaire envoyé, on récupère tous les champs.
    	$organisateur   = (isset($_POST['organisateur']))   ? Rec($_POST['organisateur'])   : '';
    	$civilite	    = (isset($_POST['civilite']))   	? Rec($_POST['civilite'])   	: '';
    	$nom     		= (isset($_POST['nom']))     		? Rec($_POST['nom'])     		: '';
    	$email   		= (isset($_POST['email']))   		? Rec($_POST['email'])   		: '';
    	$tel   			= (isset($_POST['tel']))   			? Rec($_POST['tel'])   			: '';
    	$horaires   	= (isset($_POST['horaires']))   	? Rec($_POST['horaires'])   	: '';
    	$cp 			= (isset($_POST['cp']))   			? Rec($_POST['cp'])   			: '';
    	$ville  		= (isset($_POST['ville']))   		? Rec($_POST['ville'])   		: '';
    	$option  		= (isset($_POST['option']))   		? Rec($_POST['option'])   		: '';
    	$precision   	= (isset($_POST['precision']))   	? Rec($_POST['precision'])   	: '';
     
    // -----------------
    // TRAITEMENT du formulaire (INCLUS)
    	$valid_form = 0;
    // on teste si le formulaire a été soumis
    if( isset($_POST['submit']) )
    {
    	include(__DIR__.'/send_email.php'); // (TRAITEMENT INCLUS)
    }
     
    ?>
    <!doctype html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>QUESTIONNAIRE POUR ADOPTION</title>
      <link rel="stylesheet" href="RV-2017.css"/>
      <script src="/js/jquery.min.js"></script>
      <script src="/js/responsiveslides.min.js"></script>
      <script>
        // You can also use "$(window).load(function() {"
        $(function () {
     
          // Slideshow 4
          $("#slider4").responsiveSlides({
            auto: true,
            pager: false,
            nav: true,
            speed: 500,
            namespace: "callbacks",
            before: function () {
              $('.events').append("<li>before event fired.</li>");
            },
            after: function () {
              $('.events').append("<li>after event fired.</li>");
            }
          });
     
        });
      </script>
    </head>
    <body>
    <!-- Début corps de la page-->
    	<!-- Entête et menu -->
    	<div class="row">
        	<div class="col">  
    			<header>
       				<a href=""><img src="" alt="" class="style-logo" title=""/></a>
    				<div class="base-line"><h2>QUESTIONNAIRE POUR ADOPTION</h2>
      				</div>
     
              </header>        
    	  </div> 
    </div>
    <!-- fin Entête et menu -->
    <h3>Pour avoir des renseignements merci de remplir TOUS les champs : </h3>
    <h4 align="center">Si dans les 48 heures après l'envoi du formulaire vous n'avez pas de nos nouvelles<br />
    N'hésitez pas à nous contacter par tel au </h4>
    <p align="center">.</p>
     
    <!-- début formulaire -->
       <section>
    <div class="row">
    	<div class="col col-md-one-half col-lg-one-third">
      <form  method="POST" target= "" action="send_email.php">
    		<div class="container">
        		<div class="row">
          			<div class="col-26">
            <label for="nom">Nom et Prénom*</label>
          			</div>
         			<div class="col-74">
            <input type="text" id="nom" name="nom" placeholder="Vos nom et prénom" required /><br />
          			</div>
        		</div>
        		<div class="row">
          			<div class="col-26">
            <label for="civilite">Civilité*</label>
         			</div>
          			<div class="col-74">
    <input type="radio" name="civilite" value="madame" id="madame" /> <label for="madame">Madame</label>
     
    <input type="radio" name="civilite" value="monsieur" id="monsieur" /> <label for="monsieur">Monsieur</label>
            <br />
          			</div>
        		</div>
        		<div class="row">
          			<div class="col-26">
            <label for="organisateur">Organisateur*</label>
          			</div>
          			<div class="col-74">
            <input type="text" id="organisateur" name="organisateur" placeholder="Asso, CE, Comité des fêtes, Centre de Loisirs, APE, Particulier...
    " required /><br />
          			</div> 
        		</div>
                <div class="row">
          			<div class="col-26">
            <label for="cp">Code postal*</label>
          			</div>
         			<div class="col-74">
            <input type="text" id="cp" name="cp" placeholder="Votre code postal" required /></div>
            	<div class="row">
            		<div class="col-26">
            <label for="ville"> Ville*</label>
          			</div>
         			<div class="col-74">
            <input type="text" id="ville" name="ville" placeholder="Votre ville" required />
            <br />
          			</div>
        		</div>
        		<div class="row">
          			<div class="col-26">
            <label for="email">Email*</label>
          			</div>
          			<div class="col-74">
            <input type="email" id="email" name="email" placeholder="Votre email" required /><br />
          			</div>
        		</div>
        		<div class="row">
          			<div class="col-26">
            <label for="tel">Téléphone*</label>
          			</div>
          			<div class="col-74">
            <input type="tel" id="tel" name="tel" placeholder="Votre téléphone" required /><br />
          			</div>
                 </div>   
                 <div class="row">   
          			<div class="col-26">
            <label for="horaires">Vos horaires</label>
          			</div>
          			<div class="col-74">
    <input type="radio" name="horaires" value="hr" id="hr" /> <label for="hr">Heures de repas</label>
     
    <input type="radio" name="horaires" value="hb" id="hb" /> <label for="hb">Heures de bureau</label>
    				</div>
        		</div>
    		</div>
    	</div>
    </div>
      	<div class="col col-md-one-half col-lg-two-third">
    		<div class="container">
        		<div class="row">
          			<div class="col-26">
            <label for="projet">Votre Projet*</label>
          			</div>
          			<div class="col-74">
            <input type="checkbox" name="option" id="spectacle" />
            	<label for="spectacle">Un spectacle de clowns</label><br />
    		<input type="checkbox" name="option" id="fete-familliale"/>
            	<label for="fete-familliale">Une fête familiale</label><br />
    		<input type="checkbox" name="option" id="animation-commerciale" />
            	<label for="animation-commerciale">Une animation commerciale</label><br />
    		<input type="checkbox" name="option" id="autre" />
            	<label for="autre">Autre événement</label><br />
          			</div>
    	</div>
        		<div class="row">
          			<div class="col-26">
            <label for="precision">Précisions</label>
          			</div>
          			<div class="col-74">
            <textarea id="precision" name="precision" placeholder="" style="height:250px" required></textarea>
          			</div>
        		</div>
        		<div class="row">
          <br /><br /><input type="submit" name="submit" value="Valider" required />
        		</div>
          </div>
        </div>   
      </form>
     
      <!-- fin du formulaire -->
     
     
    </section>
     
    </div>
    </div></body>
    </html>
    Page : send_email.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
     
    <?php
    // TRAITEMENT du FORMULAIRE
    // on teste si le formulaire a été soumis
     
    if (isset($_POST['submit']))
    {
     
    	/*
    		*************************************************
    		1- CONFIGURATION du fichier
    		*************************************************
    	*/
     
    	// destinataire : NOUS !
    	$destinataire = "gossetdam@gmail.com";
     
    	// Message de confirmation du mail
    	$message_envoye = "<h1>MERCI !</h1>
    					<p>&nbsp;</p>
    					<h2>Votre formulaire a bien &eacute;t&eacute; envoy&eacute; !</h2>
        				<p>&nbsp;</p> 
          				<h3> </h3>";
     
    	// Message de non envoi du mail									
    	$message_non_envoye = "D&eacute;sol&eacute;es l'envoi du mail a &eacute;chou&eacute;, veuillez r&eacute;essayer SVP.";
     
    	// Messages d'erreur du formulaire
    	$msg_formulaire_invalide = "Il y a une erreur dans votre formulaire :<br />";
     
    	/*
    		*************************************************
    		2- GESTION d'ERREUR
    		*************************************************
    	*/
    	//	var_dump( $_POST ); // en TEST
     
    	if ( empty($organisateur) 
    		|| empty($civilite) 
    		|| empty($nom) 
    		|| empty($email) 
    		|| empty($tel) 
    		|| empty($horaires)  
    		|| empty($CP) 
    		|| empty($ville) 
    		|| empty($option) 
    		|| empty($precision) 
    	){
    		$valid_form = 2;	
    		$msg_formulaire_invalide .= '- Remplissez tous les champs obligatoires, merci.<br />';
    	}
     
    	// Vérifie la validité de l'email
     
    	if( !empty($email) && !IsEmail($email) ) 
    	{
    		$valid_form = 2;	
    		$msg_formulaire_invalide .= '- Email invalide<br />';
    	}
     
    	// Vérifie la validité du tel
     
    	if( !empty($tel) && !IsTel($tel) ) 
    	{
    		$valid_form = 2;	
    		$msg_formulaire_invalide .= '- Numéro de téléphone invalide<br />';
    	}	
     
    	/*
    		*************************************************
    		3- ENVOI : on génère puis envoie le mail
    		*************************************************
    	*/
    	// OK ? ENVOI
    	if ( $valid_form == 1 ) // si PAS d'erreur
    	{
     
    		// Objet du mail  //
          	$objet = 'demande renseignements';
     
            // Contenu du message //
            $msg  = 'Bonjour,'."\r\n\r\n";
            $msg .= 'cette demande nous arrive depuis le QUESTIONNAIRE POUR ADOPTION par '. $civilite.' '.$nom."\r\n\r\n";
            $msg .= 'Pour une demande de renseignements  pour :'."\r\n\r\n";
    		$msg .= $civilite." ";
    		$msg .= $nom."\r\n\r\n";
    		$msg .= $email."\r\n\r\n";
    		$msg .= $organisateur."\r\n\r\n";
    		$msg .= $tel." aux ";
    		$msg .= $horaires."\r\n\r\n";
    		$msg .= $cp."  ";
    		$msg .= $ville."\r\n\r\n";
    		$msg .= $option."\r\n\r\n";
            $msg .= $precision."\r\n";
     
             // En-têtes de l'e-mail //
    		$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
    		$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
    		$headers .='Content-Transfer-Encoding: 8bit'; 
     
    //	echo '<pre>'.$msg.'</pre>'; // en TEST
     
    			// Envoi du mail
    			if (mail( $destinataire, $objet, $msg, $headers) )
    			{
    				echo '<p>'.$message_envoye.'</p>'."\n";
    			}
    			else
    			{
    				echo '<p>'.$message_non_envoye.'</p>'."\n";
    			};
    	}
    	else
    	{
    		$valid_form = 2;	// ERREUR
    		// une des variables (ou plus) est vide ...
    		$msg_formulaire_invalide .= '<br /><b>Merci de corriger.</b>';
    		echo '<p style="color:red;">'.$msg_formulaire_invalide.'</p>'."\n";
    	};
    } // fin TRAITEMENT du formulaire
    ?>

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Je me trompe peut-être, mais il me semble que tu as codé comme si l'action du formulaire était dans le même fichier que celui-ci mais que tu ne l'as pas codé comme ça : <form method="POST" target= "" action="send_email.php"> au lieu de
    <form method="POST" target= "" action="">...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    et moi, j'ai reconnu mon tuto :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // on teste si le formulaire a été soumis
    if( isset($_POST['submit']) )
    {
    	include(__DIR__.'/send_email.php'); // (TRAITEMENT INCLUS)
    }
    Le fichier send_email.php est INCLUS !

    Donc, comme le dit laurentSc, la page du formulaire doit s'appeler ELLE-MÊME :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <form  method="POST" action="">
    ou (comme je l'ai bien écrit dans mon tuto !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <form method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> <!-- action sur la même page -->

  5. #5
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Slt j'ai fait la modif mais l'erreur est toujours la

    contact.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
     
    <?php 
    // -----------------
    // FONCTIONS utiles
    /* cette fonction sert à nettoyer et enregistrer un texte */
    function Rec($text)
    {
    	$text = trim($text); // delete white spaces after & before text
    	$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
    	return $text;
    };
    /* Cette fonction sert à vérifier la syntaxe d'un email */
    function IsEmail($email)
    {
    	$test = filter_var( $email, FILTER_VALIDATE_EMAIL );
        return (!empty($test));
    };
     
    /* Cette fonction sert à vérifier la syntaxe d'un numéro de téléphone */
    function IsTel($tel)
    {
    	$pattern = "/^[+]?[0-9. \/]{6,20}$/"; // tél de la forme (6 à 20 caractères): +33 1 23 45 67 89 ou 0123456789 ou 01 23 45 67 89 ou 01.23.45.67.89 ou 01/23/45/67/89...
    	return (preg_match($pattern,$tel)); // true ou false
    };
    // -----------------
    // INITIALISATION ou récupération des données
    	// formulaire envoyé, on récupère tous les champs.
    	$organisateur   = (isset($_POST['organisateur']))   ? Rec($_POST['organisateur'])   : '';
    	$civilite	    = (isset($_POST['civilite']))   	? Rec($_POST['civilite'])   	: '';
    	$nom     		= (isset($_POST['nom']))     		? Rec($_POST['nom'])     		: '';
    	$prenom     	= (isset($_POST['prenom']))    	? Rec($_POST['prenom'])     	: '';
    	$email   		= (isset($_POST['email']))   		? Rec($_POST['email'])   		: '';
    	$tel   		= (isset($_POST['tel']))   			? Rec($_POST['tel'])   			: '';
    	$horaires   	= (isset($_POST['horaires']))   	? Rec($_POST['horaires'])   	: '';
    	$cp 			= (isset($_POST['cp']))   			? Rec($_POST['cp'])   			: '';
    	$ville  		= (isset($_POST['ville']))   		? Rec($_POST['ville'])   		: '';
    	$option  		= (isset($_POST['option']))   		? Rec($_POST['option'])   		: '';
    	$precision   	= (isset($_POST['precision']))   	? Rec($_POST['precision'])   	: '';
     
    // -----------------
    // TRAITEMENT du formulaire (INCLUS)
    	$valid_form = 0;
    // on teste si le formulaire a été soumis
    if( isset($_POST['submit']) )
    {
    	include(__DIR__.'/send_email.php'); // (TRAITEMENT INCLUS)
    }
     
    ?>
    <!doctype html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>QUESTIONNAIRE POUR ADOPTION</title>
      <link rel="stylesheet" href="RV-2017.css"/>
      <script src="/js/jquery.min.js"></script>
      <script src="/js/responsiveslides.min.js"></script>
      <script>
        // You can also use "$(window).load(function() {"
        $(function () {
     
          // Slideshow 4
          $("#slider4").responsiveSlides({
            auto: true,
            pager: false,
            nav: true,
            speed: 500,
            namespace: "callbacks",
            before: function () {
              $('.events').append("<li>before event fired.</li>");
            },
            after: function () {
              $('.events').append("<li>after event fired.</li>");
            }
          });
     
        });
      </script>
    </head>
    <body>
    <!-- Début corps de la page-->
    	<!-- Entête et menu -->
    	<div class="row">
        	<div class="col">  
    			<header>
       				<a href=""><img src="" alt="" class="style-logo" title=""/></a>
    				<div class="base-line"><h2>QUESTIONNAIRE POUR ADOPTION</h2>
      				</div>
     
              </header>        
    	  </div> 
    </div>
    <!-- fin Entête et menu -->
    <h3>Pour avoir des renseignements merci de remplir TOUS les champs : </h3>
    <h4 align="center">Si dans les 48 heures après l'envoi du formulaire vous n'avez pas de nos nouvelles<br />
    N'hésitez pas à nous contacter par tel au </h4>
    <p align="center">.</p>
     
    <!-- début formulaire -->
       <section>
    <div class="row">
    	<div class="col col-md-one-half col-lg-one-third">
       <form  method="POST" action="">
        <div class="row">
          			<div class="col-26">
            <label for="organisateur">Nom de l'animal choisi :</label>
          			</div>
          			<div class="col-74">
            <input type="text" id="organisateur" name="organisateur" placeholder=" " required /><br />
          			</div> 
        		</div>
        	<div class="row">
          	<div class="col-26">
            <label for="civilite">Civilité*</label>
         	</div>
          	<div class="col-74">
            <input type="radio" name="civilite" value="madame" id="madame" /> <label for="madame">Madame</label>
            <input type="radio" name="civilite" value="monsieur" id="monsieur" /> <label for="monsieur">Monsieur</label>
            <br />
          	</div>
        	</div>
     
    		<div class="container">
        	<div class="row">
          	<div class="col-26">
            <label for="nom">Nom*</label>
          	</div>
         	<div class="col-74">
            <input type="text" id="nom" name="nom" placeholder="Votre nom" required /><br />
          	</div>
        	</div>
        	<div class="container">
        	<div class="row">
          	<div class="col-26">
            <label for="prenom">Prénom*</label>
          	</div>
         	<div class="col-74">
            <input type="text" id="pernom" name="prenom" placeholder="Votre prénom" required /><br />
          	</div>
        	</div>
     
            <div class="row">
          	<div class="col-26">
            <label for="cp">Code postal*</label>
          	</div>
         	<div class="col-74">
            <input type="text" id="cp" name="cp" placeholder="Votre code postal" required /></div>
        	<div class="row">
        	<div class="col-26">
            <label for="ville"> Ville*</label>
          	</div>
         	<div class="col-74">
            <input type="text" id="ville" name="ville" placeholder="Votre ville" required />
            <br />
          	</div>
        	</div>
     
        	<div class="row">
    		<div class="col-26">
            <label for="email">Email*</label>
    		</div>
     
    		<div class="col-74">
            <input type="email" id="email" name="email" placeholder="Votre email" required /><br />
    		</div>
        	</div>
     
        	<div class="row">
          	<div class="col-26">
            <label for="tel">Téléphone*</label>
          	</div>
          	<div class="col-74">
            <input type="tel" id="tel" name="tel" placeholder="Votre téléphone" required /><br />
          	</div>
            </div>   
     
            <div class="row">   
    		<div class="col-26">
            <label for="horaires">Vos horaires</label>
    		</div>
    		<div class="col-74">
            <input type="radio" name="horaires" value="hr" id="hr" /> <label for="hr">Heures de repas</label>
            <input type="radio" name="horaires" value="hb" id="hb" /> <label for="hb">Heures de bureau</label>
    		</div>
        	</div>
    		</div>
        	</div>
            </div>
     
        	<div class="col col-md-one-half col-lg-two-third">
        	<div class="container">
        	<div class="row">
        	<div class="col-26">
            <label for="projet">Votre Projet*</label>
            </div>
            <div class="col-74">
            <input type="checkbox" name="option" id="spectacle" /><label for="spectacle">Un spectacle de clowns</label><br/>
    		<input type="checkbox" name="option" id="fete-familliale"/><label for="fete-familliale">Une fête familiale</label><br />
    		<input type="checkbox" name="option" id="animation-commerciale" /><label for="animation-commerciale">Une animation commerciale</label><br />
    		<input type="checkbox" name="option" id="autre" /><label for="autre">Autre événement</label><br />
          	</div>
        	</div>
     
        	<div class="row">
          	<div class="col-26">
            <label for="precision">Précisions</label>
          	</div>
          	<div class="col-74">
            <textarea id="precision" name="precision" placeholder="" style="height:250px" required></textarea>
          	</div>
        	</div>
     
        	<div class="row">
            <br /><br />
            <input type="submit" name="submit" value="Valider" required />
        	</div>
            </div>
            </div>   
      </form>
     
      <!-- fin du formulaire -->
     
     
    </section>
     
    </div>
    </div></body>
    </html>
    send_email.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
     
     
    <?php
    // TRAITEMENT du FORMULAIRE
    // on teste si le formulaire a été soumis
     
    if (isset($_POST['submit']))
    {
     
    	/*
    		*************************************************
    		1- CONFIGURATION du fichier
    		*************************************************
    	*/
     
    	// destinataire : NOUS !
    	$destinataire = "gossetdam@gmail.com";
     
    	// Message de confirmation du mail
    	$message_envoye = "<h1>MERCI !</h1>
    					<p>&nbsp;</p>
    					<h2>Votre formulaire a bien &eacute;t&eacute; envoy&eacute; !</h2>
        				<p>&nbsp;</p> 
          				<h3> </h3>";
     
    	// Message de non envoi du mail									
    	$message_non_envoye = "D&eacute;sol&eacute;es l'envoi du mail a &eacute;chou&eacute;, veuillez r&eacute;essayer SVP.";
     
    	// Messages d'erreur du formulaire
    	$msg_formulaire_invalide = "Il y a une erreur dans votre formulaire :<br />";
     
    	/*
    		*************************************************
    		2- GESTION d'ERREUR
    		*************************************************
    	*/
    	//	var_dump( $_POST ); // en TEST
     
    	if ( empty($organisateur) 
    		|| empty($civilite) 
    		|| empty($nom) 
    		|| empty($prenom)
    		|| empty($email) 
    		|| empty($tel) 
    		|| empty($horaires)  
    		|| empty($cp) 
    		|| empty($ville) 
    		|| empty($option) 
    		|| empty($precision) 
    	){
    		$valid_form = 2;	
    		$msg_formulaire_invalide .= '- Remplissez tous les champs obligatoires, merci.<br />';
    	}
     
    	// Vérifie la validité de l'email
     
    	if( !empty($email) && !IsEmail($email) ) 
    	{
    		$valid_form = 2;	
    		$msg_formulaire_invalide .= '- Email invalide<br />';
    	}
     
    	// Vérifie la validité du tel
     
    	if( !empty($tel) && !IsTel($tel) ) 
    	{
    		$valid_form = 2;	
    		$msg_formulaire_invalide .= '- Numéro de téléphone invalide<br />';
    	}	
     
    	/*
    		*************************************************
    		3- ENVOI : on génère puis envoie le mail
    		*************************************************
    	*/
    	// OK ? ENVOI
    	if ( $valid_form == 1 ) // si PAS d'erreur
    	{
     
    		// Objet du mail  //
          	$objet = 'demande renseignements';
     
            // Contenu du message //
            $msg  = 'Bonjour,'."\r\n\r\n";
            $msg .= 'cette demande de renseignements nous arrive depuis le QUESTIONNAIRE POUR ADOPTION par '. $civilite.' '.$nom."\r\n\r\n";
            $msg .= 'Pour une demande de renseignements  pour :'."\r\n\r\n";
    		$msg .= $civilite." ";
    		$msg .= $nom."\r\n\r\n";
    		$msg .= $prenom."\r\n\r\n";
    		$msg .= $email."\r\n\r\n";
    		$msg .= 'Nom de l\'animal choisi :'.$organisateur."\r\n\r\n";
    		$msg .= $tel." aux ";
    		$msg .= $horaires."\r\n\r\n";
    		$msg .= $cp."  ";
    		$msg .= $ville."\r\n\r\n";
    		$msg .= $option."\r\n\r\n";
            $msg .= $precision."\r\n";
     
        // En-têtes de l'e-mail //
     
    		$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
    		$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
    		$headers .='Content-Transfer-Encoding: 8bit'; 
     
    //	echo '<pre>'.$msg.'</pre>'; // en TEST
     
    			// Envoi du mail
    			if (mail( $destinataire, $objet, $msg, $headers) )
    			{
    				echo '<p>'.$message_envoye.'</p>'."\n";
    			}
    			else
    			{
    				echo '<p>'.$message_non_envoye.'</p>'."\n";
    			};
    	}
    	else
    	{
    		$valid_form = 2;	// ERREUR
    		// une des variables (ou plus) est vide ...
    		$msg_formulaire_invalide .= '<br /><b>Merci de corriger.</b>';
    		echo '<p style="color:red;">'.$msg_formulaire_invalide.'</p>'."\n";
    	};
    } // fin TRAITEMENT du formulaire
    ?>

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Je viens de voir que dans contact.php, tu as $cp et dans send_email.php $CP. Or PHP est sensible à la casse.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #7
    Invité
    Invité(e)
    Par défaut
    Et aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prenom     	= (isset($_POST['$prenom'])) .....
    $ en trop...

    Il faut faire plus attention, et apprendre à débuguer :
    var_dump( $_POST ); t'aurait sûrement mis sur la piste.
    Dernière modification par rawsrc ; 01/02/2020 à 15h06.

  8. #8
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    oui j'ai était trop vite pour prénom, si je rajoute aussi des erreur ça va pas le faire


    pour l'erreur "- Remplissez tous les champs obligatoires, merci."
    c’était bien a cause du CP
    il doit encore en resté 1
    il me marque juste ça "Il y a une erreur dans votre formulaire :"

    j'ai modifier au dessus pour ne pas trop rajouté de poste
    Merci


    Petite question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Objet du mail  //
          	$objet = 'demande renseignements';
    L'erreur ne viendrai pas de ça ?
    $objet apparaît que dans la page : send_email.php
    dans contact.php aucune trace

  9. #9
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour une dernière question pour clôture ce post j'ai besoin de faire un required sur mais différente checkbox au minimum 1 case coché
    mais je ne trouve pas la solution j'ai tester pas mal de chose mais rien de concluant
    avez vous une idée.
    Merci d'avance

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <label for="option"><p><u>Lors d'une absence (Vacances, longues journées de travail, nuit), qui prendra soin de votre animal ?</u> : <br><br />(Considérer toutes les possibilités)<span style="color:#FF0000"> Minimum 1 réponse</div></p></label>
        <input type="checkbox" name="option[]" id="Agence de gardiennage"required  value="Agence de gardiennage<br/>" onclick='chkcontrol(1)';" /><label for="Agence de gardiennage">Agence de gardiennage</label>
        <input type="checkbox" name="option[]" id="Chenil" required value="Chenil<br/>" onclick='chkcontrol(2)';" /><label for="Chenil">Chenil</label><br>
        <input type="checkbox" name="option[]" id="Voisin" required value="Voisin<br/>" onclick='chkcontrol(3)';" /><label for="Voisin">Voisin </label>
        <input type="checkbox" name="option[]" id="Famille" required value="Famille<br/>" onclick='chkcontrol(4)';" /><label for="Famille">Famille</label><br>
        <input type="checkbox" name="option[]" id="Autre02" required value="Autre<br/>" onclick='chkcontrol(5)';" /><label for="Autre02">Autre</label>

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En php ,seules les checkbox cochées renvoient une valeur.
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if( empty($_POST['option']) ) // aucune case 'option' cochée
    {
       $err[] = 'Vous devez cocher au moins une case';
    }

  11. #11
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 99
    Points : 228
    Points
    228
    Par défaut
    il me marque juste ça "Il y a une erreur dans votre formulaire :"
    C'est normal la variable $message_formulaire_invalide est initialisé au début et la variable $valid_form n'est jamais passée à 1. Hors si j'ai bien compris il faut que cette variable soit égale à 1 pour que le formulaire soit considéré comme valide, et 2 s'il est invalide. Donc il faut l'initialiser à un (ce qu'il manque) et le passer à 2 dès qu'un test de validation échoue (ça c'est déjà fait) et ensuite tester la valeur (ça c'est déjà fait aussi).


    En HTML5, il suffit de mettre required sur un élément radio ou checkbox (n'importe lequel du même groupe name) pour rendre le champ obligatoire (= au moins un case cochée).

  12. #12
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    oui je suis d'accord sa me le dit bien mais même une case coché sa me dit à chaque fois pour les 5 il ne vois pas qu'une case est coché

    mais input type radio fonctionne tres bien en required une case est ces bon

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="container">
            <div class="row">
    	<label for="residence"><p><u>Type de résidence</u> :<span style="color:#FF0000"> *</div></label>      
    		<br>
            <input type="radio" name="residence" required value="Une maison" id="Une maison"/><label for="Une maison">Une maison</label></input>
            <input type="radio" name="residence" required value="Un appartement" id="Un appartement"/><label for="Un appartement">Un appartement</label></input><br>
            <input type="radio" name="residence" required value="Une ferme" id="Une ferme"/><label for="Une ferme">Une ferme</label></input>
            <input type="radio" name="residence" required value="Autre" id="Autre01"/><label for="Autre01">Autre</label></input>
            </div>
    </div>

  13. #13
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 99
    Points : 228
    Points
    228
    Par défaut
    Si vous enlevez les required HTML5, vous pourrez faire le test de @jreaux62 côté PHP et résoudre votre problème.

  14. #14
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    j'ai fait le test mais il ne me demande pas de cocher une case

    donc aucune err

  15. #15
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Surprenant ; peux-tu montrer le code de ce test ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  16. #16
    Invité
    Invité(e)
    Par défaut
    Le code que j'ai donné ne coche rien.
    Il vérifie si au moins 1 case est cochée.

    Pour cocher une case par défaut (éventuellement), il faut ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input ....... checked="checked" />

  17. #17
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    le code a changé

    vue que je n'arrive pas avec celui de départ j'ai chercher dans d'autre direction afin de ne pas embête le monde je suis arrive a ça qui fonctionne pour ce que je recherché a faire

    il a une erreur ces sur mais le mail par sens problème juste la checkbox en " required " que j'arrive pas a faire fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
     
    <style>
     
     
    html {
     
      margin:0;
      padding:0;
      background: url(http://www.angelxp.eu/windows/hd/art/art/Bois02.jpg) no-repeat center fixed; 
      -webkit-background-size: cover; /* pour anciens Chrome et Safari */
      background-size: cover; /* version standardisée */
    }
    input:required,
    textarea:required {
      border-color:  red !important;
    }
     
     
    .center-block {
        width:250px;
        padding:10px;
        background-color:#eceadc;
        color:#ec8007
        }
     
    img {
    	max-width: 100%;
    	height: auto;
    	vertical-align: center;
    	}
     
    h1 {
      font-size: 16px;
    font-style: italic;
    	color: #000;
      text-align:center;
      }
     
    h2 {
    	font-size: 20px;
    	color: #006;
    	text-align: center;
    	}
     
    h3 {
    	font-family: Courgette;
    	font-size: 26px;
    	margin-bottom: 30px;
    	text-shadow: 3px 3px 3px #FF0;
    	color: #004;
      text-align:center;
      }
    h8 {
    font-size: 22px;
      color: #006;
      text-align:center;
      }  
     
     
    h4 {
    	font-family: Courgette;
    	font-size: 25px;
    	margin-bottom: 30px;
    	text-shadow: 3px 3px 3px #FF0;
    	color: #ff0000;
      text-align:center;
      }
    h5 {
    	font-family: Courgette;
    	font-size: 22px;
    	margin-bottom: 22px;
    	text-shadow: 3px 3px 3px #FF0;
    	color: #004;
      text-align:center;
    	}
    h6	{
    	font-family: Courgette;
    	font-size: 18px;
    	margin-bottom: 30px;
     
    	color: #004;
      text-align:center;
     
    	}
    h6 a {
    	color: #333;
    	text-decoration: none;
    	}
     
    h8 {
    	font-family: Courgette;
    	font-size: 20px;
    	margin-bottom: 30px;
    	text-shadow: 3px 3px 3px #FF0;
    	color: #004;
      text-align:center;
    	}
     
    p {
    	font-size: 16px;
    font-style: italic;
    	color: #000;
      text-align:center;
    }
     
     
     
    a {
    	color: #FFFF00;
    	text-decoration: none;
    	}  		
     
     
    .contact {
    	padding: 50px 20px 50px 20px;
    	margin: 45px 0px 45px 0px;	
    	}
     
     
     *{
        box-sizing: border-box;
    }
     
     
    /*---zone formulaire---*/
     
     
     
    input[type=text], select, textarea {
        width: 100%;
        padding: 12px;
        border: 1px solid #bbd2e1;
        border-radius: 4px;
        resize: vertical;
    }
    input[type=email], select, textarea {
        width: 100%;
        padding: 12px;
        border: 1px solid #bbd2e1;
        border-radius: 4px;
        resize: vertical;
    }
    input[type=tel], select, textarea {
        width: 100%;
        padding: 12px;
        border: 1px solid #bbd2e1;
        border-radius: 4px;
        resize: vertical;
    }
    input[type=objet], select, textarea {
        width: 100%;
        padding: 12px;
        border: 1px solid #bbd2e1;
        border-radius: 4px;
        resize: vertical;
    }
     
    label {
        padding: 12px 12px 12px 12px;
        display: inline-block;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 90%;
    	font-weight: bold;
    	font-style: italic;
    	color: #E73E01; /*test couleur question*/
    }
     
    legend {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 130%;
    	font-weight: bold;
    	color: #FFFF00;
    }
     
     
    input[type=submit] {
    	width: 50%;
        background-color:  #318ce7;
        	font-size: 24px;
    font-style: italic;
        	color: #000;
    	margin-top: 10px;
        cursor: pointer;
     
        padding: 20px;
        border: 4px solid #ccc;
        border-radius: 4px;
        resize: vertical;
     
    }
     
     
    .container {
        border-radius: 6px;
        background-color: #ABCFFD ;
     
        padding:10px;
    }
     
     
     
    /* Clear floats after the columns */
    .row:after {
        content: "";
        display: table;
        clear: both;
    }
     
    /* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */
    @media screen and (max-width: 600px) {
        .col-25, .col-75, input[type=submit] {
            width: 98%;
            margin-top: 0;
        }
    }
     
     
     
    /* Disposition tablette&nbsp;: 481px sur 768px. Hérite des styles de&nbsp;: Disposition mobile */
     
    @media screen and (min-width: 481px) {
    h1 {
        font: 24px/50px "Helvetica Neue", Helvetica, Arial, sans-serif;
        }
     
    </style>
     
     
    <?php
     
    if( empty($_POST['option']) ) // aucune case 'option' cochée
    {
       $err[] = 'Vous devez cocher au moins une case';
    }
     
     
    	$varTexteArea= str_replace('\n', '<br />', nl2br($_POST['textArea']));   /* retour à la ligne dans un textarea */
        $msg = "";
     
    	use PHPMailer\PHPMailer\PHPMailer;
    	include_once "PHPMailer/PHPMailer.php";
    	include_once "PHPMailer/Exception.php";
    	include_once "PHPMailer/SMTP.php";
     
     
    // TRAITEMENT du FORMULAIRE
    // on teste si le formulaire a été soumis
    for ($i=0;$i<count($_POST['option']);$i++)
    {
    $option = $_POST['option'][$i];
    $msg .= "Question".$i."_option : ".$option."\n\n";
    } 
     
     
     
    if (isset($_POST['submit'])) {
        	$subject = $_POST['subject'];
     
    		$civilite = $_POST['civilite'];
    		$nom = $_POST['nom'];
    		$prenom = $_POST['prenom'];
    		$naissance = $_POST['naissance'];
    		$adresse = $_POST['adresse'];
    		$cp = $_POST['cp'];
    		$ville = $_POST['ville'];
    		$telephonef = $_POST['telephonef'];
    		$telp = $_POST['telp'];
    		$email = $_POST['email'];
     
    		$profession = $_POST['profession'];
     
    		$residence      = $_POST['residence'];
    		$optionautre      = $_POST['optionautre'];
    		$message = $_POST['message'];
            $a	 	       = $_POST['a'];	
            $le	 	       = $_POST['le'];	
            $Signature	 	       = $_POST['Signature'];	
     
     
     
    		$mail = new PHPMailer(true);
     
     
    		//if we want to send via SMTP
    		$mail->Host = "smtp.gmail.com";
    		//$mail->isSMTP();
    		$mail->SMTPAuth = true;
    		$mail->Username = "**************@gmail.com";
    		$mail->Password = "************";
    		$mail->SMTPSecure = "ssl"; //TLS
    		$mail->Port = 465; //587
     
    		$mail->addAddress('*****@gmail.com');
     
    		$mail->CharSet = 'UTF-8';
    		$mail->setFrom('************.com'); // Personnaliser l'envoyeur
    		$mail->Subject = "Questionnaire pour l'adoption de  $subject";
    	//	$mail->addCC('email');// a testé si on le reçois 
    		$mail->isHTML(true);
            $mail->body = "";
    		$mail->Body .=":<b>";
            $mail->Body .='<u>Nom de l’animal choisi</u>:<p style="color:#FF0000";>'. $subject."</p>\r\n\r\n";
     	    $mail->Body .="<img src=\"http://www.primfx.com/mailing/separation.png\" /><br/>";
     
     	    $mail->Body .='<u>Nom Prénom</u> :<p style="color:#FF0000";> '.$civilite.' '.$nom.' '.$prenom. "</p>\r\n";
     	    $mail->Body .='<u>Date de naissance</u>:<p style="color:#FF0000";>'.$naissance."</p>\r\n\r\n";
            $mail->Body .='<u>Adresse </u>:<p style="color:#FF0000";> '.$adresse.' '.$cp.' '.$ville. "</p>\r\n\r\n";
            $mail->Body .='<u>telephone fixe</u>:<p style="color:#FF0000";>'.$telephonef."</p>\r\n\r\n";
            $mail->Body .='<u>telephone portable</u>:<p style="color:#FF0000";>'.$telp."</p>\r\n\r\n";
            $mail->Body .='<u>Adresse Email</u>:<p style="color:#FF0000";>'.$email."</p>\r\n\r\n";
     
            $mail->Body .="<img src=\"http://www.primfx.com/mailing/separation.png\" /><br/>";
            $mail->Body .='<u>Professions des Membres de la Famille</u>:<p style="color:#FF0000";>'.$profession."</p>\r\n\r\n";
            $mail->Body .="<img src=\"http://www.primfx.com/mailing/separation.png\" /><br/>";
     
            $mail->Body .='<u>Type de résidence</u>:<p style="color:#FF0000";>'.$residence."</p>\r\n\r\n";
     
            $mail->Body .='Lors d\'une absence (Vacances, longues journées de travail, nuit), qui prendra soin de votre animal ?</u>:<p style="color:#FF0000";>'."\r\n\r\n";
    		foreach($_POST['option'] as $pres ){
    		$mail->Body .= $pres."\n";	
    		}
    		$mail->Body .="</p>";
    		    $mail->Body .='<u>Autre</u>:<p style="color:#FF0000";>'.$optionautre."</p>\r\n\r\n";
     
     
            $mail->Body .='</p><u>Commentaires</u>:<p style="color:#FF0000";>'.$message."</p>\r\n\r\n";  
    		$mail->Body .="<img src=\"http://www.primfx.com/mailing/separation.png\" /><br/>";
    	    $mail->Body .='</p><u>Fait à</u>:<p style="color:#FF0000";>'.$a."</p>\r\n";	
            $mail->Body .='</p><u>Le</u>:<p style="color:#FF0000";>'.$le."</p>\r\n";
            $mail->Body .='</p><u>signature précédée de la mention  « lu et approuvé » </u>:<p style="color:#FF0000";>'.$Signature."</p><b>\r\n";			
     
     
    		//$mail->addAttachment($file);
    if ($mail->send())	
     
    	    	$msg = "<h4>Merci d'avoir remplis le questionnaire.</h4><br/><h4>Nous vous contacterons,<br/>après étude de celui-çi.</h4><br/><br/><br/><br/><br/>";
    		else
    		    $msg = "<h2>Veuillez réessayer!</h2>";
     
    	}
     
    ?>
    <!doctype html>
    <html lang="fr">
    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>QUESTIONNAIRE POUR ADOPTION</title>
     
    <link rel="icon" type="image/png" href="images/favicon.png">
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
     
     
     
     
     
     
     
     
     
    </head>
    <body>
     
    		<div class="col-sm">
    			<center>	<img src="PHPMailer/images/LOGO-OFFICIEL.png"><br><br>	</center>
     
                    <?php if ($msg != "") echo "$msg<br><br>"; ?>
     
    				<form method="post" action="index2.php" enctype="multipart/form-data">
     
     
            <legend><h3><u>QUESTIONNAIRE POUR ADOPTION :</u></h3></legend> <br>  <br>   
     
     
     
     
     
    	 <section>
    		<div class="row">
     
            <div class="container">
            <div class= "row">
     
            <div class="col-sm">
    		<label for="subject"><p><u>Nom de l'animal que vous aimeriez adopter</u> :<span style="color:#FF0000"> *</div></label>  
    		<input id="subject" name="subject" placeholder="" required="" type="text"><br/>
    		<h6 style="border:2px solid Violet;">Nous attirons votre attention sur le fait que d'autres dossiers sont peut-être en cours pour l'animal que vous avez choisi et que rien ne garantit que ce dernier ne soit pas réservé avant que votre propre dossier ne soit traité...<br/>Merci de votre compréhension.</h6>
            </div>
    		</div>
    		</div>
            <br>
        	<div class="container">
            <div class="row">
              <div class="col-sm-3">
                    	<label for="civilite"><br/><p><u>Civilité</u> :<span style="color:#FF0000"> *</div></label>
     
    		<input type="radio" name="civilite" required value="Monsieur" id="Monsieur" /><label for="Monsieur">Monsieur</label></input>
            <input type="radio" name="civilite" required value="Madame" id="Madame" /><label for="Madame">Madame</label></input>
            <input type="radio" name="civilite" required value="Mademoiselle" id="Mademoiselle" /><label for="Mademoiselle">Mademoiselle</label></input>
        	</div>
    		</div>            
            <div class="container">
            <div class="row">
    		<label for="nom"><p><u>Nom</u> :<span style="color:#FF0000"> *</div></label>
    		<input id="nom" name="nom" placeholder="" required="" type="text">
    		</div>
    		</div> 
        	<div class="container">
            <div class="row">
           	<label for="prenom"><p><u>Prénom</u> :<span style="color:#FF0000"> *</div></label>  
    		<input id="prenom" name="prenom" placeholder="" required="" type="text">
    		</div> 
    		</div>            
            <div class="container">
            <div class="row">
    		<label for="naissance"> <p><u>Date de naissance</u> :<span style="color:#FF0000"> *</div></label>
    		<input id="naissance" name="naissance" placeholder="" required="" type="text">
    		</div>
    		</div>            
            <div class="container">
            <div class="row">
    		<label for="adresse"><p> <u>Adresse</u> :<span style="color:#FF0000"> *</div></label>
    		<input id="adresse" name="adresse" placeholder="" required="" type="text">
    		</div>
    		</div>            
          	<div class="container">
            <div class="row">
            <label for="cp"><p> <u>Code postal</u> :<span style="color:#FF0000"> *</div></label>  
    		<input id="cp" name="cp" placeholder="" required="" type="text">
    		</div>
    		</div>            
            <div class="container">
            <div class="row">
    		<label for="ville"><p> <u>Ville</u> :<span style="color:#FF0000"> *</div></label>
    		<input id="ville" name="ville" placeholder="" required="" type="text">
    		</div>
    		</div>            
            <div class="container">
            <div class="row">
    		<label for="telephonef"><p> <u>Téléphone fixe</u> :</p></label>  
    		<input id="telephonef" name="telephonef" placeholder=""  type="text">
    		</div>
    		</div>            
            <div class="container">
            <div class="row">
    	    <label for="telp"><p> <u>Téléphone portable</u> :<span style="color:#FF0000"> *</div></label>
    		<input id="telp" name="telp" placeholder="" required="" type="text"><br>
    		</div>
    		</div>            
            <div class="container">
            <div class="row">
    		<label for="email"><p> <u>Adresse Email</u> :<span style="color:#FF0000"> *</div></label>    
    		<input id="email" name="email" placeholder="" required="" type="text">
    	    </div>
    		</div>
    		</div>
    		<br>
        	<div class="container">
            <div class="row">
            <div class="col-sm">
    		<label for="profession"><p> <u>Professions des Membres de la Famille</u> :</p></label> 
    		<textarea id="profession" name="profession" placeholder="Profession 1,
    Profession 2
     
     
    Vous pouvez faire une entrée entre chaque réponse..." required="" style="height:120px"></textarea><br>
     
            </div>
    		</div>
    		</div>
            <br>
        	<div class="container">
            <div class="row">
            <div class="col-sm-2">
    		<label for="residence"><p><u>Type de résidence</u> :<span style="color:#FF0000"> *</div></label>      
     
            <input type="radio" name="residence" required value="Une maison" id="Une maison"/><label for="Une maison">Une maison</label></input>
            <input type="radio" name="residence" required value="Un appartement" id="Un appartement"/><label for="Un appartement">Un appartement</label></input><br>
            <input type="radio" name="residence" required value="Une ferme" id="Une ferme"/><label for="Une ferme">Une ferme</label></input>
            <input type="radio" name="residence" required value="Autre" id="Autre01"/><label for="Autre01">Autre</label></input>
        </div>
    		</div>
    		</div>
    		<br>
        	<div class="container">
            <div class="row">
            <div class="col-sm">
    		<label for="domicile"><p><u>Y a t'il quelqu'un de présent au domicile la journée ?</u> :<span style="color:#FF0000"> *</div></label> 
            <input type="radio" name="domicile" required value="Oui" id="Oui6"/><label for="Oui6">Oui</label></input>
            <input type="radio" name="domicile" required value="Non" id="Non6"/><label for="Non6">Non</label></input>
            </div>
    		</div>
    		</div>
    		<br>
        	<div class="container">
            <div class="row">
            <div class="col-sm">
    		<label for="option"><p><u>Lors d'une absence (Vacances, longues journées de travail, nuit), qui prendra soin de votre animal ?</u> : <br><br />(Considérer toutes les possibilités)<span style="color:#FF0000"> Minimum 1 réponse</div></p></label>
    	    <input type="checkbox" name="option[]" id="Agence de gardiennage"  value="Agence de gardiennage<br/>" onclick='chkcontrol(1)';" /><label for="Agence de gardiennage">Agence de gardiennage</label>
    		<input type="checkbox" name="option[]" id="Chenil"  value="Chenil<br/>" onclick='chkcontrol(2)';" /><label for="Chenil">Chenil</label><br>
    		<input type="checkbox" name="option[]" id="Voisin"  value="Voisin<br/>" onclick='chkcontrol(3)';" /><label for="Voisin">Voisin </label>
    		<input type="checkbox" name="option[]" id="Famille"  value="Famille<br/>" onclick='chkcontrol(4)';" /><label for="Famille">Famille</label><br>
    		<input type="checkbox" name="option[]" id="Autre02"  value="Autre<br/>" onclick='chkcontrol(5)';" /><label for="Autre02">Autre</label>
    		</div>
    		</div>            
            <div class="container">
            <div class="row">
    		<label for="optionautre"><p><u>Si autre</u> :</p></label>  
         	<input id="optionautre" name="optionautre" placeholder=""  type="text"><br>
     
         	</div>
    		</div>
    		</div>
            <br>
        	<div class="container">
            <div class="row">
            <div class="col-sm-3">
    		<label for="message"><p><u>Commentaires</u> :<span style="color:#FF0000"> *</div></label>    
    		<textarea id="message" name="message" placeholder="" required="" style="height:120px" ></textarea><br>
     
         	</div>
    		</div>
    		</div>
            <br>
        	<div class="container">
            <div class="row">
            <div class="col-sm-3">
    		<label for="a"><p><u>Fait à</u> :<span style="color:#FF0000"> *</div></label>
         	<input id="a" name="a" placeholder="" required="" type="text">
         	</div>  
         </div>
        	<div class="container">
            <div class="row">
     
    		<label for="le"><p><u>Le</u> :<span style="color:#FF0000"> *</div></label>
         	<input id="le" name="le" placeholder="" required="" type="text"><br>
         	</div>
    		</div>
    		</div>
            <br>
        	<div class="container">
            <div class="row">
            <div class="col-sm-3">
     
     
     
    		<label for="Signature"><p><u>signature précédée de la mention  « lu et approuvé » </u> :<span style="color:#FF0000"> *</div></label>
         	<input id="Signature" name="Signature" placeholder="" required="" type="text"><br>
         	</section>
    <br>
    	<div align="center"><u><h5>Pour votre information :</u><br/><br/>
     
    *  une Pré-visite sera effectuée à votre domicile :<br/> AVANT L’ADOPTION.<br/><br>
    *  une Post-visite sera effectuée à votre domicile 6 mois à 1 an :<br/>APRES L’ADOPTION<br/> <br>(où avant si nous le jugeons nécessaire).<br/><br/>
    Merci de votre compréhension<br/><br>
     
    <br>
    <center><input class="btn btn-primary" name="submit" type="submit" value="Envoyer le questionnaire"></center>
     
     
    	<!-- Footer -->	
    </body>
    </html>
    ces juste la page pour mes test la définitive a xxxxxx question de rentré

  18. #18
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Janvier 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Janvier 2018
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjours, personne a une idée ?

  19. #19
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    si, plein.

  20. #20
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 99
    Points : 228
    Points
    228
    Par défaut
    C'est à dire que le mélange HTML/PHP est assez rebutant... d'usage, on sépare les fichiers PHP qui font du traitement de ceux qui gèrent l'affichage (MVC). Je comprends bien que le design du code n'est pas votre souci principal mais c'est difficile de donner envie à quelqu'un d'étudier un code difficile à lire ^^'

    J'ai deux idées :
    - Bloquer le bouton submit par défaut (disabled) et lorsque l'utilisateur clique sur une checkbox, vérifier qu'il y en a au moins une de cochée et l'activer si c'est le cas,
    - créer un écouteur sur l'événement submit du formulaire. La réponse validée de ce thread explique bien comment faire : https://stackoverflow.com/questions/...-before-submit

    Dans les deux cas, je vous conseille jQuery surtout si vous avez peu d'expérience en JS.

Discussions similaires

  1. Réponses: 11
    Dernier message: 10/01/2006, 08h23
  2. [Formulaire] de contact
    Par inferno66667 dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2005, 20h32
  3. Prob avec formulaire de contact
    Par inferno66667 dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2005, 19h53
  4. Prob avec PHP sur le formulaire de contact
    Par inferno66667 dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2005, 18h06
  5. Problème d'accès formulaire de contact
    Par Mystic26 dans le forum Langage
    Réponses: 7
    Dernier message: 16/09/2005, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo