Messagerie privé
Résolu/Fermé
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
-
20 nov. 2017 à 09:05
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 - 25 nov. 2017 à 10:36
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 - 25 nov. 2017 à 10:36
A voir également:
- Messagerie privé
- Numero prive - Guide
- Hotmail messagerie - Guide
- Navigateur privé - Guide
- Consultation messagerie free refusé - Forum Free mobile
- Whatsapp groupe privé - Guide
9 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
20 nov. 2017 à 09:33
20 nov. 2017 à 09:33
Bonjour,
Il faudrait que tu nous montres ton code source php :
- La page où le formulaire est codé ;
- La page où les données sont récupérées et insérées en base.
Xavier
Il faudrait que tu nous montres ton code source php :
- La page où le formulaire est codé ;
- La page où les données sont récupérées et insérées en base.
Xavier
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
20 nov. 2017 à 10:18
20 nov. 2017 à 10:18
Bonjour,
<h1>Envoyer un message</h1> <?php $PARAM = array ( 'IDMESS' => isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : '', 'IDEXP' => isset($_POST['idexp']) ? $_POST['idexp'] : '', 'DMESS' => isset($_POST['dmess']) ? dw2m($_POST['dmess']) : '', 'TMESS' => isset($_POST['tmess']) ? $_POST['tmess'] : '', 'MESS' => isset($_POST['mess']) ? $_POST['mess'] : '', 'FILE_NOM' => isset($_POST['file_nom']) ? $_POST['file_nom'] : '', 'FILE_URL' => isset($_POST['file_url']) ? $_POST['file_url'] : '', ); if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': if (!isset ($_POST['envoyer'])) { $erreur = "<span class='erreur'>Tu n'as pas sélectionné de membres !</span>"; } elseif ($_POST['tmess'] == '' || ($_POST['mess'] =='')) { $erreur = "<span class='erreur'>Renseigne le Titre et le Message !</span>"; } elseif (isset($_FILES["upload_localfile"]) && $_FILES['upload_localfile']['name'] != "") { $file_name = $_FILES['upload_localfile']['name']; $file_extension = strrchr($file_name, "."); $file_tmp_name = $_FILES['upload_localfile']['tmp_name']; $file_dest = 'fichiers/'.$file_name; $extensions_autorisees = array('.pdf', '.PDF'); if(in_array($file_extension, $extensions_autorisees)) { if(move_uploaded_file($file_tmp_name, $file_dest)) { $sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess, file_nom, file_url) VALUES ('".$_SESSION['idpers']."','".$PARAM['DMESS']."', '".$PARAM['TMESS']."', '".$PARAM['MESS']."', '".$file_name."', '".$file_dest."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $PARAM['IDMESS']); $requete->bindParam(':idexp', $_SESSION['idpers']); $requete->bindParam(':dmess', $PARAM['DMESS']); $requete->bindParam(':tmess', $PARAM['TMESS']); $requete->bindParam(':mess', $PARAM['MESS']); $requete->bindParam(':file_nom', $file_name); $requete->bindParam(':file_url', $file_dest); $requete->execute(); $idmess = isset($_POST['idmess']) ? $_POST['idmess'] : NULL; $idmess = $bdd->lastInsertId(); $envoyer = isset($_POST['envoyer']) ? $_POST['envoyer'] : NULL; $iddest = isset($_POST['iddest']) ? $_POST['iddest'] : NULL; if (is_array($envoyer)) { foreach($envoyer as $iddest) { $sql ="INSERT INTO cdc_destinataires (idmess, iddest) VALUES ('".$idmess."', '".$iddest."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $idmess); $requete->bindParam(':iddest', $iddest); $requete->execute(); } } $sql = "SELECT nom,prenom,email FROM cdc_personnes WHERE cdc_personnes.idpers = ?"; $requete = $bdd->prepare($sql); foreach ( $_POST['envoyer'] as $idpers ) { $requete->execute(array($idpers)); if ($donnees2 = $requete->fetch()) { // Adresse email des destinataires $destinataire = $donnees2->email; $prenom = $donnees2->prenom; // Titre de l'email $sujet = 'Nouveau message Clique de Cruet'; // Contenu du message de l'email $message = '<html>'; $message .= '<body><p>Bonjour '.$prenom.', <br/>'; $message .= 'Je t\'ai envoyé un nouveau message dans ton espace membre...<br/>'; $message .= 'Bonne lecture.<br/>'; $message .= '<p>'.$_SESSION['prenom'].'</p>'; $message .= '<p style="color:red;">Merci de ne pas répondre à cet email, ceci est un envoi automatique</p></body>'; $message .= '</html>'; // 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=utf-8'."\r\n"; $headers .= 'From:"mon_site"<>'."\n"; // Fonction principale qui envoi l'email mail($destinataire, $sujet, $message, $headers); } } $success = "<span class='success'>Message envoyé avec Pièce Jointe !</span>"; } else { $erreur = "<span class='erreur'>Ton fichier est trop volumineux, impossible de l'envoyer !</span>"; } } else { $erreur = "<span class='erreur'>Seul les fichiers PDF sont autorisés !</span>"; } } else { $success = "<span class='success'>Message envoyé sans Pièce Jointe !</span>"; } break; } } ?>
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
20 nov. 2017 à 11:35
20 nov. 2017 à 11:35
Ce code-là est bizarre :
Tu colles directement les valeurs dans $sql et ensuite tu fais des bindParams.
Pareil dans ta requête « INSERT INTO cdc_destinataires ».
Dans ton $sql, remplace plutôt les valeurs par les labels définis dans les bindParams.
Xavier
$sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess, file_nom, file_url) VALUES ('".$_SESSION['idpers']."','".$PARAM['DMESS']."', '".$PARAM['TMESS']."', '".$PARAM['MESS']."', '".$file_name."', '".$file_dest."')"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $PARAM['IDMESS']); $requete->bindParam(':idexp', $_SESSION['idpers']); $requete->bindParam(':dmess', $PARAM['DMESS']); $requete->bindParam(':tmess', $PARAM['TMESS']); $requete->bindParam(':mess', $PARAM['MESS']); $requete->bindParam(':file_nom', $file_name); $requete->bindParam(':file_url', $file_dest); $requete->execute();
Tu colles directement les valeurs dans $sql et ensuite tu fais des bindParams.
Pareil dans ta requête « INSERT INTO cdc_destinataires ».
Dans ton $sql, remplace plutôt les valeurs par les labels définis dans les bindParams.
Xavier
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
20 nov. 2017 à 12:37
20 nov. 2017 à 12:37
Bonjour
J'ai fait comme tu me l'a suggéré mais les INSERT dans ma BDD ne ce font plus.
Jusque ici tout marchais bien, mais penses tu que cela viens de ça mon soucis?
En envoyant via mon formulaire si je tape du texte sans espace il n'y a pas de soucis.
Merci de tes conseils.
J'ai fait comme tu me l'a suggéré mais les INSERT dans ma BDD ne ce font plus.
Jusque ici tout marchais bien, mais penses tu que cela viens de ça mon soucis?
En envoyant via mon formulaire si je tape du texte sans espace il n'y a pas de soucis.
Merci de tes conseils.
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
20 nov. 2017 à 13:37
20 nov. 2017 à 13:37
Montre ton code modifié.
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
Modifié le 20 nov. 2017 à 13:49
Modifié le 20 nov. 2017 à 13:49
$sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess, file_nom, file_url) VALUES (:idpers,:dmess,:tmess,:mess,:file_nom,:file_url)"; $requete = $bdd->prepare($sql); $requete->bindParam(':idmess', $PARAM['IDMESS']); $requete->bindParam(':idexp', $_SESSION['idpers']); $requete->bindParam(':dmess', $PARAM['DMESS']); $requete->bindParam(':tmess', $PARAM['TMESS']); $requete->bindParam(':mess', $PARAM['MESS']); $requete->bindParam(':file_nom', $file_name); $requete->bindParam(':file_url', $file_dest); $requete->execute();
EDIT : Ajout des balises de code
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
20 nov. 2017 à 13:57
20 nov. 2017 à 13:57
Si mes souvenirs sont bons ... tu utilises PDO ....
Dans ce cas, pourquoi ne pas avoir placé chacune de tes requêtes dans un bloc TRY CATCH pour essayer de voir l'erreur ?
Ensuite, avec le BIND_PARAM .. l'intérêt de l'utiliser... c'est de préciser le TYPE de variable que tu lui envoies.
Par exemple :
Sinon.. autant utiliser un ARRAY dans le execute !
Par exemple :
Dans ce cas, pourquoi ne pas avoir placé chacune de tes requêtes dans un bloc TRY CATCH pour essayer de voir l'erreur ?
Ensuite, avec le BIND_PARAM .. l'intérêt de l'utiliser... c'est de préciser le TYPE de variable que tu lui envoies.
Par exemple :
$stmt->bindParam(':dmess', $PARAM['DMESS'], PDO::PARAM_STR);
Sinon.. autant utiliser un ARRAY dans le execute !
Par exemple :
$sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess, file_nom, file_url) VALUES (:idpers,:dmess,:tmess,:mess,:file_nom,:file_url)"; $datas = array( ,':idmess'=> $PARAM['IDMESS'] ,':idexp'=> $_SESSION['idpers'] ,':dmess'=> $PARAM['DMESS'] ,':tmess'=> $PARAM['TMESS'] ,':mess'=> $PARAM['MESS'] ,':file_nom'=> $file_name ,':file_url'=> $file_dest ); try{ $requete = $bdd->prepare($sql); $result = $requete->execute($datas); }catch(Exception $e){ echo "Erreur ! " .$e->getMessage(); }
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
>
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
20 nov. 2017 à 13:59
20 nov. 2017 à 13:59
Déjà là ;... je vois une erreur....
Le nom des variables nommées ne correspondent pas à celles passées dans la requête .....
:idmess d'un côté ...: idpers de l'autre ...
:idexp en trop dans l'array....
Avec les blocs TRY/CATCH ... tu aurais eu l'erreur de suite !
Pour rappel :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
Le nom des variables nommées ne correspondent pas à celles passées dans la requête .....
:idmess d'un côté ...: idpers de l'autre ...
:idexp en trop dans l'array....
Avec les blocs TRY/CATCH ... tu aurais eu l'erreur de suite !
Pour rappel :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
20 nov. 2017 à 16:33
20 nov. 2017 à 16:33
Bonjour
Je suis en train d'essayer de modifier ce que vous m'avez suggerer, en fait en faisant des essai d'INSERT je me suis aperçu en fait que l'INSERT dans la BDD ne ce fait si je ne met pas de pièce jointe je ne vois pas l'erreur....
Je suis en train d'essayer de modifier ce que vous m'avez suggerer, en fait en faisant des essai d'INSERT je me suis aperçu en fait que l'INSERT dans la BDD ne ce fait si je ne met pas de pièce jointe je ne vois pas l'erreur....
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
20 nov. 2017 à 17:41
20 nov. 2017 à 17:41
Commence par faire les modifications que je t'ai recommandé... puis postes nous ton code modifié que l'on sache où tu en es...
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
20 nov. 2017 à 18:22
20 nov. 2017 à 18:22
Bonjour,
oui j'utilise bien PDO dans un fichier init.php
j'ai mis à jour les requète et là vlan j'ai une page blanche absolument rien?? Je n'arrive pas à voir ce qui ne va pas.
Merci encore
oui j'utilise bien PDO dans un fichier init.php
j'ai mis à jour les requète et là vlan j'ai une page blanche absolument rien?? Je n'arrive pas à voir ce qui ne va pas.
Merci encore
<h1>Envoyer un message</h1> <?php $PARAM = array ( 'IDMESS' => isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : '', 'IDEXP' => isset($_POST['idexp']) ? $_POST['idexp'] : '', 'DMESS' => isset($_POST['dmess']) ? dw2m($_POST['dmess']) : '', 'TMESS' => isset($_POST['tmess']) ? $_POST['tmess'] : '', 'MESS' => isset($_POST['mess']) ? $_POST['mess'] : '', 'FILE_NOM' => isset($_POST['file_nom']) ? $_POST['file_nom'] : '', 'FILE_URL' => isset($_POST['file_url']) ? $_POST['file_url'] : '', ); if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': if (!isset ($_POST['envoyer'])) { $erreur = "<span class='erreur'>Tu n'as pas sélectionné de membres !</span>"; } elseif ($_POST['tmess'] == '' || ($_POST['mess'] =='')) { $erreur = "<span class='erreur'>Renseigne le Titre et le Message !</span>"; } elseif (isset($_FILES["upload_localfile"]) && $_FILES['upload_localfile']['name'] != "") { $file_name = $_FILES['upload_localfile']['name']; $file_extension = strrchr($file_name, "."); $file_tmp_name = $_FILES['upload_localfile']['tmp_name']; $file_dest = 'fichiers/'.$file_name; $extensions_autorisees = array('.pdf', '.PDF'); if(in_array($file_extension, $extensions_autorisees)) { if(move_uploaded_file($file_tmp_name, $file_dest)) { $sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess, file_nom, file_url) VALUES (:idpers,:dmess,:tmess,:mess,:file_nom,:file_url)"; $datas = array( ,':idexp'=> $_SESSION['idpers'] ,':dmess'=> $PARAM['DMESS'] ,':tmess'=> $PARAM['TMESS'] ,':mess'=> $PARAM['MESS'] ,':file_nom'=> $file_name ,':file_url'=> $file_dest ); try { $requete = $bdd->prepare($sql); $result = $requete->execute($datas); } catch(Exception $e) { echo "Erreur ! " .$e->getMessage(); } $idmess = isset($_POST['idmess']) ? $_POST['idmess'] : NULL; $idmess = $bdd->lastInsertId(); $envoyer = isset($_POST['envoyer']) ? $_POST['envoyer'] : NULL; $iddest = isset($_POST['iddest']) ? $_POST['iddest'] : NULL; if (is_array($envoyer)) { foreach($envoyer as $iddest) { $sql = "INSERT INTO cdc_destinataires (idmess, iddest) VALUES (:idmess,:iddest)"; $datas = array( ,':idmess'=> $idmess ,':iddest'=> $iddest ); try { $requete = $bdd->prepare($sql); $result = $requete->execute($datas); } catch(Exception $e) { echo "Erreur ! " .$e->getMessage(); } } } $sql = "SELECT nom,prenom,email FROM cdc_personnes WHERE cdc_personnes.idpers = ?"; $requete = $bdd->prepare($sql); foreach ( $_POST['envoyer'] as $idpers ) { $requete->execute(array($idpers)); if ($donnees2 = $requete->fetch()) { // Adresse email des destinataires $destinataire = $donnees2->email; $prenom = $donnees2->prenom; // Titre de l'email $sujet = 'Nouveau message Clique de Cruet'; // Contenu du message de l'email $message = '<html>'; $message .= '<body><p>Bonjour '.$prenom.', <br/>'; $message .= 'Je t\'ai envoyé un nouveau message dans ton espace membre...<br/>'; $message .= 'Bonne lecture.<br/>'; $message .= '<p>'.$_SESSION['prenom'].'</p>'; $message .= '<p style="color:red;">Merci de ne pas répondre à cet email, ceci est un envoi automatique</p></body>'; $message .= '</html>'; // 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=utf-8'."\r\n"; $headers .= 'From:"cliquedecruet"<cliquede@60gp.ovh.net>'."\n"; // Fonction principale qui envoi l'email mail($destinataire, $sujet, $message, $headers); } } $success = "<span class='success'>Message envoyé avec Pièce Jointe !</span>"; } else { $erreur = "<span class='erreur'>Ton fichier est trop volumineux, impossible de l'envoyer !</span>"; } } else { $erreur = "<span class='erreur'>Seul les fichiers PDF sont autorisés !</span>"; } } else { $success = "<span class='success'>Message envoyé sans Pièce Jointe !</span>"; } break; } } ?>
yg_be
Messages postés
23295
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 octobre 2024
1 548
22 nov. 2017 à 00:26
22 nov. 2017 à 00:26
pourquoi es-tu étonné d'avoir une page blanche? qu'attends-tu d'autre?
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
>
yg_be
Messages postés
23295
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 octobre 2024
23 nov. 2017 à 19:50
23 nov. 2017 à 19:50
Bonjour
En fait j'avais fait une erreur de syntaxe tout bêtement.
Merci
En fait j'avais fait une erreur de syntaxe tout bêtement.
Merci
yg_be
Messages postés
23295
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 octobre 2024
1 548
>
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
25 nov. 2017 à 10:36
25 nov. 2017 à 10:36
peux-tu marquer comme résolu?
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
20 nov. 2017 à 19:30
20 nov. 2017 à 19:30
dans mon tableau j'ai enlevé les 2 virgule de trop c'est déjà ça.
Mais par contre pourquoi je n'arrive pas à faire les INSERT sans aucune pièce jointe?
Mais par contre pourquoi je n'arrive pas à faire les INSERT sans aucune pièce jointe?
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
Modifié le 20 nov. 2017 à 20:17
Modifié le 20 nov. 2017 à 20:17
Sans vouloir te vexer... ton code est un vrai bord**
Il faut que tu apprennes à découper en fonction .....
A ne pas faire 10 fois la même chose dans ton code (comme répurer à plusieurs reprises les valeurs de tes variables à plusieurs endroits de ton code....)
A nommer tes variables plus correctement..... j'ai mis une plombe à comprendre que $_POST['envoyer'] etait ta liste de déstinataires...
Bref...
Voici à quoi pourrait (devrait ! ) ressembler ton code :
NB: Je l'ai écrit de tête sans tester.... il peut y avoir des erreurs.
Il faudra les corriger.
Cordialement,
Jordane
Il faut que tu apprennes à découper en fonction .....
A ne pas faire 10 fois la même chose dans ton code (comme répurer à plusieurs reprises les valeurs de tes variables à plusieurs endroits de ton code....)
A nommer tes variables plus correctement..... j'ai mis une plombe à comprendre que $_POST['envoyer'] etait ta liste de déstinataires...
Bref...
Voici à quoi pourrait (devrait ! ) ressembler ton code :
<?php // démarrage des sessions session_start(); //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); /** * Fonction pour faire une requete INSERT */ function queryInsert($sql,$datas=NULL,$returnLastInsert=false){ global $bdd; try { $requete = $bdd->prepare($sql); $result = $requete->execute($datas); if($returnLastInsert){ $result = $bdd->lastInsertId(); } } catch(Exception $e) { echo "Erreur ! " .$e->getMessage(); } return !empty($result) ? $result : NULL; } /** * Fonction pour faire une requete SELECT * @return Objet */ function querySelect($sql,$datas=NULL){ global $bdd; try { $requete = $bdd->prepare($sql); $requete->execute($datas); $result = $requete->fetchAll(PDO::FETCH_ASSOC); } catch(Exception $e) { echo "Erreur ! " .$e->getMessage(); } return !empty($result) ? $result : NULL; } /** * Fonction Ajouter */ function Ajouter($idexp,$prenomFrom='' ,$dmess ,$tmess ,$mess='' ,$arr_destinataires=array() ,$file_nom='' ,$file_url='' ,$file=NULL ){ if(!empty($file)){ //si fichier : $uploadFile = uploadFile($file,$destDirFile,$extensions_autorisees); if($uploadFile['ETAT']==false){ $erreurFichier = $uploadFile['error']; } }else{ //pas de fichier $erreurFichier = NULL; } //$uploadFile => 'file'=>array('name'=>$file_name,'dest'=>$file_dest,'extension'=>$file_extension) $file_dest = !empty($uploadFile) ? $uploadFile['file_dest'] : NULL; $idmess = CrerMessage($idexp,$dmess,$tmess,$mess,$file_nom,$file_dest); $envoiMail = array(); if($idmess){ if(is_array($arr_destinataires) && !empty($arr_destinataires)) { foreach($arr_destinataires as $iddest) { $envoieMsg[] = sendMessageBdd($idmess,$iddest); $envoiMail[] = envoyerMail($iddest,$prenomFrom); } }else{ //si c'est une string et non un array $envoieMsg = sendMessageBdd($idmess,$arr_destinataires); $envoiMail = envoyerMail($arr_destinataires,$prenomFrom); } $result = array('ETAT'=>true,array('envoiMsg'=>$envoieMsg,'envoiMail'=>$envoiMail,'Erreur_fichier'=>$erreurFichier)); }else{ $result = array('ETAT'=>false,'error'=>'souci lors de l\'enregistrement en bdd'); } return $result; } /** * Fonction pour ajouter un message dans la bdd */ function CrerMessage($idexp,$dmess,$tmess,$mess,$file_nom,$file_dest){ $sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess, file_nom, file_url) VALUES (:idpers,:dmess,:tmess,:mess,:file_nom,:file_url)"; $datas = array( ':idexp'=> $idexp ,':dmess'=> $dmess ,':tmess'=> $tmess ,':mess'=> $mess ,':file_nom'=> $file_nom ,':file_url'=> $file_dest ); return queryInsert($sql,$datas,true); } /** * Fonction pour uploader un fichier * $oFile = $_FILE['toninputfile'] */ function uploadFile($oFile=NULL,$destDirFile = 'fichiers/',$extensions_autorisees=array('.pdf', '.PDF')){ $file_name = $oFile['name']; $file_tmp_name = $oFile['tmp_name']; $file_extension = strrchr($file_name, "."); $file_dest = $destDirFile.$file_name; if(in_array($file_extension, $extensions_autorisees)) { if(move_uploaded_file($file_tmp_name, $file_dest)) { $result = array('ETAT'=>true,'file'=>array('name'=>$file_name,'dest'=>$file_dest,'extension'=>$file_extension)); }else{ if(!is_dir($destDirFile)){ $result('ETAT'=>false,'error'=>'Repertoire de destination inconnu !'); }else{ $result('ETAT'=>false,'error'=>'Erreur inconnue durant l\'upload !'); } } }else{ $result('ETAT'=>false,'error'=>'Extension interdite!'); } return $result; } /** * Recupere les infos d'un user */ function getInfosUserById($idpers){ $sql = "SELECT nom,prenom,email FROM cdc_personnes CP WHERE CP.idpers = :idpers"; $datas = array(':idpers'=>$idpers); return querySelect($sql,$datas); } /** * Fonction pour envoyer le message */ function sendMessageBdd($idmess,$iddest){ $sql = "INSERT INTO cdc_destinataires (idmess, iddest) VALUES (:idmess,:iddest)"; $datas = array( ':idmess'=> $idmess ,':iddest'=> $iddest ); return queryInsert($sql,$datas); } /** * Envoie du Mail aux destinataires */ function envoyerMail($idpers,$prenomFrom){ $infosUser = getInfosUserById($idpers); if(!empty($infosUser)){ // Adresse email des destinataires $destinataire = $infosUser->email; $prenom = $infosUser->prenom; // Titre de l'email $sujet = 'Nouveau message Clique de Cruet'; // Contenu du message de l'email $message = '<html>'; $message .= '<body><p>Bonjour '.$prenom.', <br/>'; $message .= 'Je t\'ai envoyé un nouveau message dans ton espace membre...<br/>'; $message .= 'Bonne lecture.<br/>'; $message .= '<p>'.$prenomFrom.'</p>'; $message .= '<p style="color:red;">Merci de ne pas répondre à cet email, ceci est un envoi automatique</p></body>'; $message .= '</html>'; // 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=utf-8'."\r\n"; $headers .= 'From:"cliquedecruet"<cliquede@60gp.ovh.net>'."\n"; // Fonction principale qui envoi l'email $result = mail($destinataire, $sujet, $message, $headers); }else{ $result = array('ETAT'=>false,'error'=>'Problème lors de la récupération des données de l\'utilisateur'); } return !empty($result) ? $result : NULL; } //-------------------------------------------------------------// //Variables pour le fichier //-------------------------------------------------------------// $destDirFile = 'fichiers/'; $extensions_autorisees=array('.pdf', '.PDF'); //-------------------------------------------------------------// //récupération PROPRE des variables AVANT de les utiliser //-------------------------------------------------------------// $idmess = isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : ''; $idexp = !empty($_POST['idexp']) ? $_POST['idexp'] : NULL; $dmess = isset($_POST['dmess']) ? dw2m($_POST['dmess']) : ''; $tmess = isset($_POST['tmess']) ? $_POST['tmess'] : ''; $mess = isset($_POST['mess']) ? $_POST['mess'] : ''; $file_nom = isset($_POST['file_nom']) ? $_POST['file_nom'] : ''; $file_url = isset($_POST['file_url']) ? $_POST['file_url'] : ''; $action = !empty($_POST['action']) ? $_POST['action'] : NULL; $file = !empty($_FILE['upload_localfile']) ? $_FILE['upload_localfile'] : NULL; $arr_destinataires = !empty($_POST['envoyer']) ? $_POST['envoyer'] : NULL; $idexp = !empty($_SESSION['idpers']) ? $_SESSION['idpers'] : NULL; $prenomFrom = !empty($_SESSION['prenom']) ? $_SESSION['prenom'] : NULL; //-------------------------------------------------------------// //Autres variables utilisées pour le script //-------------------------------------------------------------// $result = NULL; $erreur = array(); //-------------------------------------------------------------// //début du traitement //-------------------------------------------------------------// switch($action) { case 'ajouter': if(!$idexp){ $erreur[] = "Utilisateur non connecté"; }elseif(empty($arr_destinataires)){ $erreur[] = "Tu n'as pas sélectionné de membres !"; }elseif( !$tmess || $mess){ $erreur[] = "Renseigne le Titre et le Message !"; }else{ $ajouter = Ajouter($idexp ,$prenomFrom ,$dmess ,$tmess ,$mess,$arr_destinataires,$file_nom,$file_url,$file); if($ajoute['ETAT'] == false){ $erreur[] = $ajouter['error']; }else{ $result = $ajouter['result']; } } break; default: $erreur[] = 'Action inconnue'; break; } //----------------------------------------------------------// // Affichage des erreurs si il y en a // (attention ! si tu fais de l'ajax.. cette partie devrai être traitée côté Javascript et non ici !!!) //----------------------------------------------------------// if(!empty($erreur)){ foreach($erreur as $err){ echo "<span class='erreur'>".$err."</span>"; } } //----------------------------------------------------------// // Si tu fais de l'ajax ... decommente cette partie : //----------------------------------------------------------// // echo json_encode($result); ?>
NB: Je l'ai écrit de tête sans tester.... il peut y avoir des erreurs.
Il faudra les corriger.
Cordialement,
Jordane
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
20 nov. 2017 à 20:27
20 nov. 2017 à 20:27
Au passage, tu me feras plaisir en allant lire ceci (et en l'appliquant ! ) : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
21 nov. 2017 à 23:19
21 nov. 2017 à 23:19
Bonjour,
Je te remercie pour tout, mais je suis débutant en la matière et toutes les fonctions me donne du mal par rapport à une page de script traditionnelle.
Je ne sais pas si tu comprends ce que je veux dire.
Mais encore merci, je garde tous ça sous le coude en attendant.
Je te remercie pour tout, mais je suis débutant en la matière et toutes les fonctions me donne du mal par rapport à une page de script traditionnelle.
Je ne sais pas si tu comprends ce que je veux dire.
Mais encore merci, je garde tous ça sous le coude en attendant.