Formulaire de contact

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire de contact

Re: Formulaire de contact

par dg-59 » 21 févr. 2020, 17:27

Bonjour j'ai changer le code initial ne voyant pas comment le faire fonctionner et je passe par phpmailer
mon code est mélange j'ai juste remis les questions pour les test, mais il fonctionne

Code : Tout sélectionner

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

Re: Formulaire de contact

par dg-59 » 19 févr. 2020, 16:06

Bonjour une idée .? j'ai testé pas mal de chose mais je n'y arrive pas

Re: Formulaire de contact

par dg-59 » 17 févr. 2020, 20:17

Ok merci mais je doit tout coché encore je vais continuer sur cette piste la Merci

Re: Formulaire de contact

par @rthur » 17 févr. 2020, 19:02

A ma connaissance pas possible en HTML uniquement, il faut que tu passes par du javascript.

Voici une piste :
https://stackoverflow.com/a/30055382

Re: Formulaire de contact

par dg-59 » 17 févr. 2020, 17:05

Bonjour une dernière question pour clôture ce post j'ai besoin de faire un un required sur mais checkbox
mais je ne trouve pas la solution j'ai tester pas mal de chose mais rien de concluant avez vous une idée, une piste a creuser

Code : Tout sélectionner

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

Re: Formulaire de contact

par @rthur » 06 févr. 2020, 00:04

Erreur 500 = Erreur du serveur, il faut que tu regardes dans les logs pour voir quelle est l'erreur.
Si tu ne sais pas où sont les logs, contacte ton hébergeur

Re: Formulaire de contact

par dg-59 » 05 févr. 2020, 17:06

Bonjour, j'essais depuis de faire fonctionner phpmailer j'ai un hebergeur qui me sert juste a ça pas de site web dessus
mais a chaque fois "Cette page ne fonctionne pasImpossible de traiter cette demande via unslain-cylinders.000webhostapp.com à l'heure actuelle.
HTTP ERROR 500"


index.php

Code : Tout sélectionner

<?php // Import PHPMailer classes into the global namespace // These must be at the top of your script, not inside a function use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; // Instantiation and passing `true` enables exceptions $mail = new PHPMailer(true); try { //Server settings $mail->SMTPDebug = 2; // Enable verbose debug output $mail->isSMTP(); // Send using SMTP $mail->Host = 'auth.smtp.gmail.com'; // Set the SMTP server to send through $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = '[email protected]'; // SMTP username $mail->Password = 'xxxxxx'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted $mail->Port = 465; // TCP port to connect to //Recipients $mail->setFrom('[email protected]', 'Mailer'); $mail->addAddress('[email protected]', 'Joe User'); // Add a recipient //$mail->addAddress('[email protected]'); // Name is optional //$mail->addReplyTo('[email protected]', 'Information'); // $mail->addCC('[email protected]'); // $mail->addBCC('[email protected]'); // Attachments //$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name // Content $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'c\'est damien <b>Cool!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; }
sois j'ai une erreur dans le code ou c'est le serveur qui ne va pas

Re: Formulaire de contact

par dg-59 » 03 févr. 2020, 17:29

je doit recommencé a 0 sa en 1er alors ?

Code : Tout sélectionner

<?php use PHPMailer\PHPMailer; use PHPMailer\Exception; require $_SERVER['DOCUMENT_ROOT'] . 'PHPMailer/PHPMailer/Exception.php'; require $_SERVER['DOCUMENT_ROOT'] . 'PHPMailer/PHPMailer/PHPMailer.php'; require $_SERVER['DOCUMENT_ROOT'] . 'PHPMailer/PHPMailer/SMTP.php'; $mail = new PHPMailer; $mail->isSMTP(); $mail->SMTPDebug = 2; // 0 = off (for production use) - 1 = client messages - 2 = client and server messages $mail->Host = "smtp.gmail.com"; // use $mail->Host = gethostbyname('smtp.gmail.com'); // if your network does not support SMTP over IPv6 $mail->Port = 587; // TLS only $mail->SMTPSecure = 'tls'; // ssl is deprecated $mail->SMTPAuth = true; $mail->Username = '[email protected] '; // email $mail->Password = 'xxxxxxx'; // password $mail->setFrom('@', 'CKSoftwares System'); // From email and name $mail->addAddress('[email protected]', 'Damien'); // to email and name $mail->Subject = 'PHPMailer GMail SMTP test'; $mail->msgHTML("test body"); //$mail->msgHTML(file_get_contents('contents.html'), __DIR__); //Read an HTML message body from an external file, convert referenced images to embedded, $mail->AltBody = 'HTML messaging not supported'; // If html emails is not supported by the receiver, show this body // $mail->addAttachment('images/phpmailer_mini.png'); //Attach an image file $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); if(!$mail->send()){ echo "Mailer Error: " . $mail->ErrorInfo; }else{ echo "Message sent!"; }

Re: Formulaire de contact

par dg-59 » 03 févr. 2020, 16:13

Slt ok je vais regarder je connais pas du tout

Re: Formulaire de contact

par Spols » 03 févr. 2020, 09:11

Pour que ton mail ai plus belle allure et te permettre de le mettre en page, il faut le passer en HTML

je te conseil l'utilisation d'une bibliothèque pour cela car c'est assez complex. phpmailer est très bien pour ça.

Re: Formulaire de contact

par dg-59 » 03 févr. 2020, 04:49

Bonjour, Merci je regarde a ça en rentrant du boulot

enfaîte il mon demandé si je pouvais sur le mail reçus mettre les question souligné et la réponse en rouge
avec une ligne de séparation entre question

Code : Tout sélectionner

<img src="http://www.primfx.com/mailing/separation.png"/>

Re: Formulaire de contact

par dooki » 02 févr. 2020, 20:40

pour ta premiere question :

Code : Tout sélectionner

<div class="col-74"> <input type="tel" id="tel" name="tel" placeholder="Votre téléphone" required /><br /> </div>
1)tu enleves required,
2) tu enleves la verification correspondante : "|| empty($tel) "

pour ta deuxieme j'ai pas compris

Re: Formulaire de contact

par dg-59 » 02 févr. 2020, 20:29

J'ai 2 autres question
*comment faire pour que certaine question ne soit pas obligatoire
* peux t'on mettre en forme ex:

Code : Tout sélectionner

$msg = 'Bonjour, '."\r\n"; $msg .= </u>'Nom de l\'animal choisi :'</u><FONT color="#ff0000">'.$organisateur.'</FONT>"\r\n\r\n";
j'ai test ça comme sur un autre formulaire mais ça ne fonctionne pas

Re: Formulaire de contact

par dg-59 » 02 févr. 2020, 20:22

Je dirai que c'est normal car tu utilises mal les checkbox.
http://www.expreg.com/expreg_article.php?art=checkbox

Soit tu donnes un name différent à chaque checkbox et ensuite si elle a été cochée, tu va recevoir un true en testant la valeur retournée du name en question.
Soit tu donnes un name unique à toutes tes checkbox en précisant que c'est un tableau (donc en mettant des crochets après le nom de la variable (cf l'exemple) et par contre il faut que tu mettes des value différent à chaque checkbox pour que le formulaire renvoie un tableau avec les variables cochées.

Si tu as un doute, passe ton formulaire en GET (pour le debug) plutôt qu'en POST, ça te permettra de voir dans l'url les variables passées c'est pratique pour débuguer.
Merci j'ai réussi a le faire fonctionné

Re: Formulaire de contact

par dg-59 » 02 févr. 2020, 11:45

Code : Tout sélectionner

<?php error_reporting(E_ALL); if(!empty($_POST)) { echo '<pre>'; echo print_r($_POST['choix'],true); echo '</pre><br /> Faire un autre test : <a href="checkbox.php">Tester à nouveau</a>'; } else { echo '<b>Test de récupération dans le cas de checkbox multiple</b>'; echo '<form method="POST" action="checkbox.php"> <input type="checkbox" name="choix[]" value="1"> nom 1<br> <input type="checkbox" name="choix[]" value="2"> nom 2<br> <input type="checkbox" name="choix[]" value="3"> nom 3<br> <input type="checkbox" name="choix[]" value="4"> nom 4<br> <input type="checkbox" name="choix[]" value="5"> nom 5<br> <input type="submit" value="test"> </form>'; } ?>
ok mais j'arrive pas a voir ou je doit placé la partie

Code : Tout sélectionner

<?php error_reporting(E_ALL); if(!empty($_POST)) { echo '<pre>'; echo print_r($_POST['choix'],true); echo '</pre><br /> Faire un autre test : <a href="checkbox.php">Tester à nouveau</a>'; } else { echo '<b>Test de récupération dans le cas de checkbox multiple</b>'; echo '
est comment je fait pour la placé ou je veux dans le mail



Voila le test que je vient de faire

contact.php

Code : Tout sélectionner

<?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']) : ''; $choix[] = (isset($_POST['choix[]'])) ? Rec($_POST['choix[]']) : ''; $choixautre = (isset($_POST['choixautre'])) ? Rec($_POST['choixautre']) : ''; $precision = (isset($_POST['precision'])) ? Rec($_POST['precision']) : ''; // ----------------- // TRAITEMENT du formulaire (INCLUS) $valid_form = 1; // 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=""> <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><br /><br /> <label for="horaires">Comment laisserez-vous votre animal à l'extérieur ? (Considérer toutes les possibilités)</label><br /> <input type="checkbox" name="choix[]" value="1"> Libre dehors<br> <input type="checkbox" name="choix[]" value="2"> Cour clôturée<br> <input type="checkbox" name="choix[]" value="3"> Marche en laisse avec vous<br> <input type="checkbox" name="choix[]" value="4"> Attaché à une niche<br> <input type="checkbox" name="choix[]" value="5"> Enclos extérieur<br> <input type="checkbox" name="choix[]" value="6"> Autres<br> <input type="choixautre" id="choixautre" name="choixautre" placeholder="" /><br /><br /> <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 : Tout sélectionner

<?php // TRAITEMENT du FORMULAIRE // on teste si le formulaire a été soumis if (isset($_POST['submit'])) { /* ************************************************* 1- CONFIGURATION du fichier ************************************************* */ // destinataire : NOUS ! $destinataire = "[email protected]"; // 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($choix) || empty($choixautre) || 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 .= $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 .= 'Comment laisserez-vous votre animal à l\'extérieur ? '.$choix."\r\n\r\n"; $msg .= $choixautre."\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 ?>
Array to string conversion in /test/send_email.php on line 93

dans le mail j'ai maintenant un : "Array"

est la case autre qui devrai être une option est obligatoire

Code : Tout sélectionner

<input type="choixautre" id="choixautre" name="choixautre" placeholder="" /><br /><br />