Probleme checkbox

- - Dernière réponse : jordane45
Messages postés
25595
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2019
- 7 sept. 2017 à 16:29
Bonjour,
Je n'arrive pas à recevoir par mail plusieurs réponse par checkbox
je n'ai qu'un seule réponse


$date = htmlentities($_POST['date']);



<INPUT type="checkbox" name="date" value="Lundi"> Lundi
<INPUT type="checkbox" name="date" value="Mardi "> Mardi
<INPUT type="checkbox" name="date" value="Mercredi "> Mercredi
<INPUT type="checkbox" name="date" value="Jeudi "> Jeudi
<INPUT type="checkbox" name="date" value="Vendredi "> Vendredi
Afficher la suite 

Votre réponse

2 réponses

Messages postés
25595
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2019
311
0
Merci
Bonjour,

commence par mettre les "name" de tes checkbox façon array
comme ceci :
<INPUT type="checkbox" name="date[]" value="Lundi"> Lundi
<INPUT type="checkbox" name="date[]" value="Mardi "> Mardi
...etc...


Puis côté php:
//récupération PROPRE des variables avant de les utiliser
$a_date = !empty($_POST['date']) ? $_POST['date'] : NULL;

// affichage des variables (on boucle sur l'array)
foreach($a_date as $key=>$date){
  echo "<br>".$date;
}


NB: On n'utilise htmlspecialchar, htmlentities... QUE POUR L'AFFICHAGE ... Jamais pour le traitement ou l'insertion en bdd !

NB²: Tu feras attention.. dans tes "value" tu as des espaces à la fin de certains jours.

Commenter la réponse de jordane45
Messages postés
2
Date d'inscription
jeudi 7 septembre 2017
Statut
Membre
Dernière intervention
7 septembre 2017
0
Merci
Avec le array je n'arrive pas à recevoir les informations cela me met une erreur

C'est pour un formulaire de contact

Regarde sur mon site : http://www.sas-capely.fr/contact1.php

Voici le code en entier


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Titre de la page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>


<?php
// S'il y des données de postées
if ($_SERVER['REQUEST_METHOD']=='POST') {
// Code PHP pour traiter l'envoi de l'email

$nombreErreur = 0; // Variable qui compte le nombre d'erreur

// Définit toutes les erreurs possibles


if (!isset($_POST['email'])) { // Si la variable "email" du formulaire n'existe pas (il y a un problème)
$nombreErreur++; // On incrémente la variable qui compte les erreurs
$erreur1 = '<p>Il y a un problème avec la variable "email".</p>';
} else { // Sinon, cela signifie que la variable existe (c'est normal)
if (empty($_POST['email'])) { // Si la variable est vide
$nombreErreur++; // On incrémente la variable qui compte les erreurs
$erreur2 = '<p>Vous avez oublié de donner votre email.</p>';
} else {
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$nombreErreur++; // On incrémente la variable qui compte les erreurs
$erreur3 = '<p>Cet email ne ressemble pas un email.</p>';
}
}
}


if (!isset($_POST['message'])) {
$nombreErreur++;
$erreur4 = '<p>Il y a un problème avec la variable "message".</p>';
} else {
if (empty($_POST['message'])) {
$nombreErreur++;
$erreur5 = '<p>Vous avez oublié de donner un message.</p>';
}
}

if (!isset($_POST['captcha'])) {
$nombreErreur++;
$erreur6 = '<p>Il y a un problème avec la variable "captcha".</p>';
} else {
if ($_POST['captcha']!=4) {
$nombreErreur++;
$erreur7 = '<p>Désolé, le captcha anti-spam est erroné.</p>';
}
}

if ($nombreErreur==0) { // S'il n'y a pas d'erreur
// Récupération des variables et sécurisation des données
$nom = htmlentities($_POST['nom']); // htmlentities() convertit des caractères "spéciaux" en équivalent HTML
$email = htmlentities($_POST['email']);
$tel = htmlentities($_POST['tel']);
$a_date = !empty($_POST['date']) ? $_POST['date'] : NULL;
$a_heure = !empty($_POST['heure']) ? $_POST['heure'] : NULL;
$objetrdv = htmlentities($_POST['objetrdv']);
$message = htmlentities($_POST['message']);

// Variables concernant l'email
$destinataire = 'monadresse@gmail.com'; // Adresse email du webmaster
$sujet = 'Titre du message'; // Titre de l'email
$contenu = '<html><head><title>Titre du message</title></head><body>';
$contenu .= '<p>Bonjour, vous avez reçu un message à partir de votre site web.</p>';
$contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
$contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
$contenu .= '<p><strong>Tel</strong>: '.$tel.'</p>';
$contenu .= '<p><strong>Date</strong>: '.$a_date.'</p>';
$contenu .= '<p><strong>Horaire</strong>: '.$a_heure.'</p>';
$contenu .= '<p><strong>Objet</strong>: '.$objetrdv.'</p>';
$contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
$contenu .= '</body></html>'; // Contenu du message de l'email

// Pour envoyer un email HTML, l'en-tête Content-type doit être défini
$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";

@mail($destinataire, $sujet, $contenu, $headers); // Fonction principale qui envoi l'email

echo '<h2>Message envoyé!</h2>'; // Afficher un message pour indiquer que le message a été envoyé
} else { // S'il y a un moins une erreur
echo '<div style="border:1px solid #ff0000; padding:5px;">';
echo '<p style="color:#ff0000;">Désolé, il y a eu '.$nombreErreur.' erreur(s). Voici le détail des erreurs:</p>';
if (isset($erreur1)) echo '<p>'.$erreur1.'</p>';
if (isset($erreur2)) echo '<p>'.$erreur2.'</p>';
if (isset($erreur3)) echo '<p>'.$erreur3.'</p>';
if (isset($erreur4)) echo '<p>'.$erreur4.'</p>';
if (isset($erreur5)) echo '<p>'.$erreur5.'</p>';
if (isset($erreur6)) echo '<p>'.$erreur6.'</p>';
if (isset($erreur7)) echo '<p>'.$erreur7.'</p>';
if (isset($erreur8)) echo '<p>'.$erreur8.'</p>';
echo '</div>';
}
}
?>

<form method="post" action="<?php echo strip_tags($_SERVER['REQUEST_URI']); ?>">
<h1>Information</h1>
<p>Votre nom et prénom: <input type="text" name="nom" size="30" /></p>
<p>Votre email: <span style="color:#ff0000;">*</span>: <input type="text" name="email" size="30" /></p>
<p>Tel : <span style="color:#ff0000;">*</span>: <input type="text" name="tel" size="30" /></p>

<h1>Votre disponibilité</h1>
<p>Jours : <span style="color:#ff0000;">*</span>:
<INPUT type="checkbox" name="date[L]" value="Lundi"> Lundi
<INPUT type="checkbox" name="date[M]" value="Mardi"> Mardi
<INPUT type="checkbox" name="date[M]" value="Mercredi"> Mercredi
<INPUT type="checkbox" name="date[J]" value="Jeudi"> Jeudi
<INPUT type="checkbox" name="date[V]" value="Vendredi"> Vendredi</p>

<p>Horaires : <span style="color:#ff0000;">*</span>:
<INPUT type="checkbox" name="heure[8]" value="8H"> 8H
<INPUT type="checkbox" name="heure[10]" value="10H "> 10H
<INPUT type="checkbox" name="heure[14]" value="14H "> 14H
<INPUT type="checkbox" name="heure[16]" value="16H "> 16H
<INPUT type="checkbox" name="heure[18]" value="18H "> 18H

<p>Objet du rendez-vous : <span style="color:#ff0000;">*</span>:
<SELECT name="objetrdv" size="1">
<OPTION>
<OPTION>Devis installation climatisation
<OPTION>Devis installation electrique
<OPTION>Dépannage climatisation
<OPTION>Dépannage electrique
</SELECT>

<p>Message <span style="color:#ff0000;">*</span>:</p>
<textarea name="message" cols="60" rows="10"></textarea>
<p>Combien font 1+3: <span style="color:#ff0000;">*</span>: <input type="text" name="captcha" size="2" /></p>
<p><input type="submit" name="submit" value="Envoyer" /></p>
</form>

</body>
</html>
mickaelc34
Messages postés
2
Date d'inscription
jeudi 7 septembre 2017
Statut
Membre
Dernière intervention
7 septembre 2017
-
Notice: Array to string conversion in /public_html/sascapely/contact1.php on line 74

Notice: Array to string conversion in /public_html/sascapely/contact1.php on line 75
jordane45
Messages postés
25595
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2019
311 > mickaelc34
Messages postés
2
Date d'inscription
jeudi 7 septembre 2017
Statut
Membre
Dernière intervention
7 septembre 2017
-
Tu ne peux pas utiliser la variable array directement .... tu dois BOUCLER dessus ... comme dans l'exemple que je t'ai donné !
Commenter la réponse de mickaelc34