Messagerie privé [Résolu/Fermé]

Signaler
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
-
Messages postés
15997
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021
-
Bonjour,
J'ai mis en place ma messagerie privé en PHP avec BDD Mysql. Je viens de m'apercevoir que lorsqu'on envoie un message avec espace ou virgule etc... l'envoie en BDD ne ce fait pas par contre sinon tout ce passe normalement.
Pouvez-vous m'expliquer ce que je peux faire s'ils vous plait.
Je vous remercie.

9 réponses

Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
993
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
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32
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;
    }
}
?>
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
993
Ce code-là est bizarre :
	$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
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32
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.
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Montre ton code modifié.
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32
$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

Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
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 :
$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();	
}
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

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://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs


.
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32
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....
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Commence par faire les modifications que je t'ai recommandé... puis postes nous ton code modifié que l'on sache où tu en es...
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32
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
<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;
    }
}
?>
Messages postés
15997
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021
867
pourquoi es-tu étonné d'avoir une page blanche? qu'attends-tu d'autre?
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32 >
Messages postés
15997
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021

Bonjour
En fait j'avais fait une erreur de syntaxe tout bêtement.
Merci
Messages postés
15997
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021
867 >
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020

peux-tu marquer comme résolu?
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32
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?
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
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 :
<?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                                                                 
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Au passage, tu me feras plaisir en allant lire ceci (et en l'appliquant ! ) : https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
32
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.