Bonsoir,
Je rencontre un problème avec un formulaire, lorsque l'utilisateur envoie ce qu'il a rentré dans l'ensemble des champs, cela ne l'avertit pas de son action. Conséquence, je reçois plusieurs fois le mail (voir même 99 fois le mail pour les plus téméraires !)
la page send-annu.php
la page du formulaire
Pourriez-vous m'aider à comprendre pourquoi le message de confirmation ne s'affiche pas ?
Modifié par dafid5 (09 Oct 2016 - 08:20)
Je rencontre un problème avec un formulaire, lorsque l'utilisateur envoie ce qu'il a rentré dans l'ensemble des champs, cela ne l'avertit pas de son action. Conséquence, je reçois plusieurs fois le mail (voir même 99 fois le mail pour les plus téméraires !)
la page send-annu.php
<?php
session_start();//on démarre la session
// $errors = [];
$errors = array(); // on crée une vérif de champs
if(!array_key_exists('nom', $_POST) || $_POST['nom'] == '') {
$errors ['nom'] = "vous n'avez pas renseigné votre nom";
}
if(!array_key_exists('prenom', $_POST) || $_POST['prenom'] == '') {
$errors ['prenom'] = "vous n'avez pas renseigné votre prénom";
}
if(!array_key_exists('email', $_POST) || $_POST['email'] == '' || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$errors ['email'] = "vous n'avez pas renseigné votre email professionnel";
}
if(!array_key_exists('telephone', $_POST) || $_POST['telephone'] == ''){
$errors ['telephone'] = "vous n'avez pas renseigné votre téléphone professionnel";
}
if(isset($_POST['multiselect'])){
$multiselect = array();
foreach($_POST['multiselect'] as $return_choice){
$multiselect[] = $return_choice;
}
$multiselect = implode(' ; ', $multiselect);
}
if(!array_key_exists('adeli', $_POST) || $_POST['adeli'] == '') {
$errors ['adeli'] = "vous n'avez pas renseigné votre numéro ADELI";
}
if(!array_key_exists('adresse', $_POST) || $_POST['adresse'] == '') {
$errors ['adresse'] = "vous n'avez pas renseigné votre adresse";
}
if(!array_key_exists('cp', $_POST) || $_POST['cp'] == '') {
$errors ['cp'] = "vous n'avez pas renseigné votre code postal";
}
if(!array_key_exists('ville', $_POST) || $_POST['ville'] == '') {
$errors ['ville'] = "vous n'avez pas renseigné votre ville";
}
if(!array_key_exists('commentaire', $_POST) || $_POST['commentaire'] == '') {
$errors ['commentaire'] = "vous n'avez pas renseigné votre message de présentation";
}
$site=$HTTP_POST_VARS['site'];
if(!empty($errors)){
$_SESSION['errors'] = $errors;
$_SESSION['inputs'] = $_POST;
header('Location: inscription-annuaire-dieteticien-nutritionniste.php');
}else{
$_SESSION['success'] = 1;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'FROM:' . htmlspecialchars($_POST['email']);
$to = 'local@diet.com';
$objet = 'Inscription annuaire diet : ' . htmlspecialchars($_POST['nom']) .' ' . htmlspecialchars($_POST['prenom']) .'';
$message_content = '
<table>
<tr>
<td><b>Emetteur du message:</b></td>
</tr>
<tr>
<td>'. $objet . '</td>
</tr>
<tr>
<td>' . htmlspecialchars($_POST['adresse']) . '</td>
</tr>
<tr>
<td>' . htmlspecialchars($_POST['cp']) . '</td>
</tr>
<tr>
<td>' . htmlspecialchars($_POST['ville']) . '</td>
</tr>
<tr>
<td>' . htmlspecialchars($_POST['email']) . '</td>
</tr>
<tr>
<td><b>Tél: </b>' . htmlspecialchars($_POST['telephone']) . '</td>
</tr>
<tr>
<td><b>ADELI: </b>' . htmlspecialchars($_POST['adeli']) . '</td>
</tr>
<tr>
<td>' . htmlspecialchars($_POST['site']) . '</td>
</tr>
<tr>
<td><b>Contenu du message:</b></td>
</tr>
<tr>
<td>' . htmlspecialchars($multiselect) . '</td>
</tr>
<tr>
<td>'. htmlspecialchars($_POST['commentaire']) .'</td>
</tr>
<tr><td>--<br>Cet email a été envoyé via le formulaire d ajout dans l annuaire du site Diététicien Nutritionniste Santé (http://www.dieteticien-nutritionniste-sante.com)</td></tr>
</table>
';
mail($to, $objet, $message_content, $headers);
header('Location: inscription-annuaire-dieteticien-nutritionniste.php');
}
la page du formulaire
<?php
session_start();
?>
<!DOCTYPE html>
<head></head>
<body>
<?php if(array_key_exists('errors',$_SESSION)): ?>
<div class="alert alert-danger">
<?= implode('<br>', $_SESSION['errors']); ?>
</div>
<?php endif; ?>
<?php if(array_key_exists('success',$_SESSION)): ?>
<div class="alert alert-success">
Votre inscription dans notre annuaire, nous a été envoyé. Vous serez prochainement ajouté dans votre région.
</div>
<?php endif; ?>
<form enctype="multipart/form-data" action="send-annu.php" method="post">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom :</label><input required="true" type="text" id="nom" name="nom" value="<?php echo isset($_SESSION['inputs']['nom'])? $_SESSION['inputs']['nom'] : ''; ?>" tabindex="1" /></p>
<p><label for="prenom">Prénom :</label><input required type="text" id="prenom" name="prenom" value="<?php echo isset($_SESSION['inputs']['prenom'])? $_SESSION['inputs']['prenom'] : ''; ?>" tabindex="2" /></p>
<p><label for="email">Email :</label><input required type="email" id="email" name="email" value="<?php echo isset($_SESSION['inputs']['email'])? $_SESSION['inputs']['email'] : ''; ?>" tabindex="3" /></p>
<p><label for="telephone">Téléphone :</label><input required type="tel" id="telephone" maxlength="10" name="telephone" value="<?php echo isset($_SESSION['inputs']['telephone'])? $_SESSION['inputs']['telephone'] : ''; ?>" tabindex="4" /></p>
</fieldset>
<fieldset id="lieu exercice"><legend>Lieu d'exercice</legend>
<p><label for="cabinet"><input type="checkbox" name="multiselect[]" id="cabinet" value="à mon cabinet" tabindex="5"> J'exerce en cabinet</label>
<br>
<label for="domicile"><input type="checkbox" name="multiselect[]" id="domicile" value="à domicile" tabindex="6"> Je consulte à domicile</label>
</p>
</fieldset>
<fieldset id="infosupp"><legend>Informations supplémentaires</legend>
<p><label for="adeli">Numéro ADELI :</label><input required type="text" name="adeli" maxlength="10" title="Veuillez saisir votre numéro ADELI" value="<?php echo isset($_SESSION['inputs']['adeli'])? $_SESSION['inputs']['adeli'] : ''; ?>" tabindex="7" /></p>
<p><label for="adresse">Adresse :</label><input required type="text" name="adresse" title="Veuillez saisir votre adresse" value="<?php echo isset($_SESSION['inputs']['adresse'])? $_SESSION['inputs']['adresse'] : ''; ?>" tabindex="8" /></p>
<p><label for="cp">Code postal :</label><input required type="text" name="cp" maxlength="5" title="Veuillez saisir votre code postal" value="<?php echo isset($_SESSION['inputs']['cp'])? $_SESSION['inputs']['cp'] : ''; ?>" tabindex="9" /></p>
<p><label for="ville">Ville :</label><input required type="text" name="ville" title="Veuillez saisir votre ville" value="<?php echo isset($_SESSION['inputs']['ville'])? $_SESSION['inputs']['ville'] : ''; ?>" tabindex="10" /></p>
<p><label for="site">Site internet :</label><input type="url" name="site" placeholder="www." value="<?php echo isset($_SESSION['inputs']['site'])? $_SESSION['inputs']['site'] : ''; ?>" tabindex="11" /></p>
</fieldset>
<div class="article__category">
<p class="small-link">- Veuillez faire de vraies phrases, sobres, descriptives et éviter tout language promotionnel.<br>- Les inscriptions qui contiennent des expressions telles que "la meilleure diététicienne", "perdez 5 kg par semaine", "le plus efficace", ... ne sont pas acceptées.
<br>- Votre présentation doit être suffisament fournie mais synthétique et ne fera pas mention de votre site personnel, ni de vos horaires. Les descriptifs du type "toutes infos sur mon site" sont à proscrire.
</div>
<fieldset><legend>Présentation des prestations proposées</legend>
<p><label for="commentaire">Message :</label><textarea required id="commentaire" type="text" name="commentaire" tabindex="12" cols="40" rows="10" maxlength="840" style="overflow: hidden; word-wrap: break-word; resize: horizontal; height: 206px;"><?php echo isset($_SESSION['inputs']['commentaire'])? $_SESSION['inputs']['commentaire'] : ''; ?></textarea></p>
</fieldset>
<button type="submit" name="envoi">Envoyer</button>
</form>
</body>
</html>
<?php
unset($_SESSION['inputs']);
unset($_SESSION['success']);
unset($_SESSION['errors']);
Pourriez-vous m'aider à comprendre pourquoi le message de confirmation ne s'affiche pas ?
Modifié par dafid5 (09 Oct 2016 - 08:20)