Problème value radio
delaville81
Messages postés
209
Statut
Membre
-
delaville81 Messages postés 209 Statut Membre -
delaville81 Messages postés 209 Statut Membre -
Bonjour,
J'aurais besoin de votre aide pour comprendre quel est le problème.
Quand je clique sur "Envoyer" il ne récupère pas les pas les adresses mails.
Configuration: Macintosh / Chrome 101.0.4951.64
--
Bien PHPment et MySQLment
Delaville
J'aurais besoin de votre aide pour comprendre quel est le problème.
$destina = $_POST['desti'];
if($destina == 1){
$sql = "SELECT id_membre,email FROM membre WHERE email != ''";
$pdo->exec('SET NAMES utf8');
$resultat = $pdo->query($sql);
$tableau = array();
while($var = $resultat->fetch()){
$tableau[] = $var['email'];
}
$mailing = "";
for($i=0;$i<count($tableau);$i++){
$mailing .= $tableau[$i].",";
}
}
<form id= "" action="mail_send.php" method ="POST" enctype="multipart/form-data">
<h4>Destinataires</h4>
<div class="form-check">
<input class="form-check-input radio_block" type="radio" name="desti" id="radio1" value="1">
<label class="form-check-label" for="radio1">Tous les membres</label>
</div>
<div class="form-check">
<input class="form-check-input radio_block" type="radio" name="desti" id="radio2" value="2">
<label class="form-check-label" for="radio2">Membres non incrits</label>
</div>
<div class="form-check">
<input class="form-check-input radio_block" type="radio" name="desti" id="radio3" value="3">
<label class="form-check-label" for="radio3">Membres incrits</label>
</div>
<div class="form-check">
<input class="form-check-input radio_block" type="radio" name="desti" id="radio4" value="4">
<label class="form-check-label" for="radio4">Référents</label>
</div>
<div class="ligne_top"></div>
<input type="hidden" name="mailmembre" id="mailmembre" value="<?php echo substr($mailing,0,-1); ?>">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-default">Sujet</span>
</div>
<input type="text" class="form-control" name="sujet" aria-label="Default" aria-describedby="inputGroup-sizing-default" id="sujetMail">
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">Mail</label>
<textarea class="form-control" name="mail" id="textMail" rows="3"></textarea>
</div>
<div class="button_right">
<button type="submit" class="btn btn-primary" name="envoyer" id="sendMailing" disabled="disabled">Envoyer</button>
</div>
</form>
Quand je clique sur "Envoyer" il ne récupère pas les pas les adresses mails.
Configuration: Macintosh / Chrome 101.0.4951.64
--
Bien PHPment et MySQLment
Delaville
8 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
le point de départ, c'est d'afficher le contenu de $_POST. -
Bonjour,
Commence par faire un var_dump de la variable $_POST et regarde ce qu'elle contient.
De plus, vu que tu fais du PDO, je t'invite à mettre en place ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Tu peux aussi remplacer ta boucle pour concaténer tes adresses .. par l'utilisation de la fonction implode()
https://www.php.net/manual/fr/function.implode.php
-
Ma variable est NULL au chargement de la page. Une fois postée j'ai : String (1) "1"
La page appelé dans le <form> envoi un mail.
La liste n'est pas remplie par le POST.
Je bloque
-
As tu modifié ton code PDO comme je te l'ai demandé ?
Et puis.. as tu essayé de faire des var_dump des différentes variables ($tableau, $mailing) pour voir ce qu'elles contiennent ? (Au passage.. je t'ai demandé un var_dump de $_POST ... pas un var_dump de $_POST['desti'] )
Et as tu testé ta requête DIRECTEMENT dans ta bdd ( via l'interface de phpmyadmin par exemple ) ? Te retourne-t'elle ce que tu veux ? peux tu nous en mettre une capture écran ?
-
-
Jordane45,
Je m'excuse pour ma réponse si tardive.
en réponse à tes questions,
J'ai bien modifier mon code avec les erreurs PDO
var_dump($_POST);
array(5) { ["desti"]=> string(1) "1" ["mailmembre"]=> string(0) "" ["sujet"]=> string(0) "" ["mail"]=> string(0) "" ["envoyer"]=> string(0) "" }
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); include 'header.php'; if(isset($_SESSION['log'])){ ?> <div class="ligne_top"></div> <div class="row"> <div class="col-12 col-sm-12 col-md-8"> <?php if(isset($_POST['desti']) == 1){ $sql = "SELECT id_membre,email FROM membre WHERE email != ''"; $pdo->exec('SET NAMES utf8'); $resultat = $pdo->query($sql); $tableau = array(); while($var = $resultat->fetch()){ $tableau[] = $var['email']; } $mailing = ""; for($i=0;$i<count($tableau);$i++){ $mailing .= $tableau[$i].","; } var_dump($_POST); } if(isset($_POST['desti']) == 2){ $sql = "SELECT id_membre, mail FROM user"; $pdo->exec('SET NAMES utf8'); $resultat = $pdo->query($sql); $tab_user = array(); while($var = $resultat->fetch()){ $tab_user[] = $var['id_membre']; } $user_insrits = ""; for($i=0;$i<count($tab_user);$i++){ $user_insrits .= $tab_user[$i].","; } $extarct_user = substr($user_insrits,0,-1); $sql_not = "SELECT id_membre,email FROM membre WHERE email != '' AND id_membre NOT IN (".$extarct_user.")"; $pdo->exec('SET NAMES utf8'); $resu = $pdo->query($sql_not); $tableau = array(); while($var = $resu->fetch()){ $tableau[] = $var['email']; } $mailing = ""; for($j=0;$j<count($tableau);$j++){ $mailing .= $tableau[$j].","; } } if(isset($_POST['desti'])== 3){ $sql = "SELECT id_user, mail FROM user"; $pdo->exec('SET NAMES utf8'); $resultat = $pdo->query($sql); $tableau = array(); while($var = $resultat->fetch()){ $tableau[] = $var['mail']; } $mailing = ""; for($i=0;$i<count($tableau);$i++){ $mailing .= $tableau[$i].","; } } if(isset($_POST['desti']) == 4){ $sql = "SELECT id_membre,email,ref FROM membre WHERE email != '' AND ref = 1"; $pdo->exec('SET NAMES utf8'); $resultat = $pdo->query($sql); $tableau = array(); while($var = $resultat->fetch()){ $tableau[] = $var['email']; } $mailing = ""; for($i=0;$i<count($tableau);$i++){ $mailing .= $tableau[$i].","; } } ?> <h1>Mailing</h1> <form id= "" action="mailing.php" method ="POST" enctype="multipart/form-data"> <!--<form id= "" action="mail_send.php" method ="POST" enctype="multipart/form-data">--> <h4>Destinataires</h4> <div class="form-check"> <input class="form-check-input radio_block" type="radio" name="desti" id="radio1" value="1"> <label class="form-check-label" for="radio1">Tous les membres</label> </div> <div class="form-check"> <input class="form-check-input radio_block" type="radio" name="desti" id="radio2" value="2"> <label class="form-check-label" for="radio2">Membres non incrits</label> </div> <div class="form-check"> <input class="form-check-input radio_block" type="radio" name="desti" id="radio3" value="3"> <label class="form-check-label" for="radio3">Membres incrits</label> </div> <div class="form-check"> <input class="form-check-input radio_block" type="radio" name="desti" id="radio4" value="4"> <label class="form-check-label" for="radio4">Référents</label> </div> <div class="ligne_top"></div> <input type="hidden" name="mailmembre" id="mailmembre" value="<?php echo substr($mailing,0,-1); ?>"> <div class="input-group mb-3"> <div class="input-group-prepend"> <span class="input-group-text" id="inputGroup-sizing-default">Sujet</span> </div> <input type="text" class="form-control" name="sujet" aria-label="Default" aria-describedby="inputGroup-sizing-default" id="sujetMail"> </div> <div class="form-group"> <label for="exampleFormControlTextarea1">Mail</label> <textarea class="form-control" name="mail" id="textMail" rows="3"></textarea> </div> <div class="button_right"> <button type="submit" class="btn btn-primary" name="envoyer" id="sendMailing" disabled="disabled">Envoyer</button> </div> </form> </div> </div> <?php }else{ header('location:../erreur.php'); } include 'footer.php';
-
Pourrais tu me donner la bonne syntaxe ?
Je cherche aussi la bonne syntaxe des requête préparée en SELECT (Tu m'avais donné la bonne syntaxe en INSERT UPDATE et DELETE)
Je trouve plusieurs exemple sur les sites php.
Merci
-
Que ça soit un insert, un update, un delete .. ou un select ... c'est toujours la même chose...
//préparation de la requête et des variables $sql = "SELECT * FROM matable WHERE champ1 = :valeur1"; //Les données à envoyer dans la requête $datas = array(':valeur1'=>$valeur1); //Execution de la requete ( TOUJOURS LE MEME CODE...) try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
-
-
J'ai fait comme tu m'a dit
$sql = "SELECT id_membre,email FROM membre WHERE email != ''"; $datas = array(':id_membre'=>$id_membre, ':email'=>$email); try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; while($var = $requete->fetch()){ $tableau[] = $var['email']; } $mailing = ""; for($i=0;$i<count($tableau);$i++){ $mailing .= $tableau[$i].","; } }catch(Exception $e){ echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
j'ai :
Notice: Undefined variable: id_membre in /home/........./mailing.php on line 17
Notice: Undefined variable: email in /home/........./mailing.php on line 17
Notice: Undefined variable: bdd in /home/........./mailing.php on line 20
Fatal error: Uncaught Error: Call to a member function prepare() on null in /home/........./mailing.php:20 Stack trace: #0 {main} thrown in /home/........./mailing.php on line 20
Merci de ton aide -
J'ai résolu le problème des requêtes SELECT.
Fatal error j'ai remplacé $bdd par $pdo, ça marche.
Je les ai testé indépendamment, elles fonctionnent.
Par contre ça ne résout pas mon problème de liste qui change sur le click de mes boutons radio.
Mon Code PHP pour validationif(isset($_POST['desti']) == 1){ $sql = "SELECT id_membre,email FROM membre WHERE email != :email"; $nothing = ""; $datas = array(':email'=>$nothing); try{ $requete = $pdo->prepare($sql); $requete->execute($datas); $tableau = array(); while($var = $requete->fetch()){ $tableau[] = $var['email']; } $mailing = ""; for($i=0;$i<count($tableau);$i++){ $mailing .= $tableau[$i].","; } }catch(Exception $e){ echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } if(isset($_POST['desti']) == 2){ $sql = "SELECT id_membre, mail FROM user"; try{ $requete = $pdo->prepare($sql); $requete->execute(); $tab_user = array(); while($var = $requete->fetch()){ $tab_user[] = $var['id_membre']; } $user_insrits = ""; for($i=0;$i<count($tab_user);$i++){ $user_insrits .= $tab_user[$i].","; } $extarct_user = substr($user_insrits,0,-1); }catch(Exception $e){ echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $sql_not = "SELECT id_membre,email FROM membre WHERE email != '' AND id_membre NOT IN ($extarct_user)"; try{ $requet = $pdo->prepare($sql_not); $requet->execute(); $tableau = array(); while($var = $requet->fetch()){ $tableau[] = $var['email']; } $mailing = ""; for($j=0;$j<count($tableau);$j++){ $mailing .= $tableau[$j].","; } }catch(Exception $e){ echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } if(isset($_POST['desti'])== 3){ $sql = "SELECT id_user, mail FROM user"; try{ $requete = $pdo->prepare($sql); $requete->execute(); $tableau = array(); while($var = $requete->fetch()){ $tableau[] = $var['mail']; } $mailing = ""; for($i=0;$i<count($tableau);$i++){ $mailing .= $tableau[$i].","; } }catch(Exception $e){ echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } if(isset($_POST['desti']) == 4){ $sql = "SELECT id_membre,email,ref FROM membre WHERE email != '' AND ref = 1"; try{ $requete = $pdo->prepare($sql); $requete->execute($datas); $tableau = array(); while($var = $requete->fetch()){ $tableau[] = $var['email']; } $mailing = ""; for($i=0;$i<count($tableau);$i++){ $mailing .= $tableau[$i].","; } }catch(Exception $e){ echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } }
Merci de ton aide